- 相關推薦
微型計算機原理及應用(一)
解釋題
微處理器【解答】由大規模集成電路芯片構成的中央處理器(CPU),叫做微處理器。微型計算機【解答】以微處理器為基礎,配以內存儲器、輸入輸出接口電路、總線以及相應的輔助電路而構成的計算機裸機,叫做微型計算機。微型計算機系統【解答】微型計算機系統由硬件系統和軟件系統組成。即由微型計算機、配以相應的外部設備(如打印機、顯示器、鍵盤、磁盤機等),再配以足夠的軟件而構成的系統。單板機【解答】將微處理器、RAM、ROM以及I/O接口電路,再配上相應的外設(如小鍵盤、LED顯示器等)和固化在ROM中的監控程序等,安裝在一塊印刷電路板上構成的微型計算機系統稱為單板機。運算器【解答】運算器是直接完成各種算術運算、邏輯運算的部件,主要由ALU(Arithmetic and Logic Unit,算術邏輯部件)、通用寄存器、標志寄存器等組成。地址總線【解答】地址總線是CPU對內存或外設進行尋址時,傳送內存及外設端口地址的一組信號線。地址總線的條數多少決定了CPU的尋址能力。數據總線【解答】數據總線是CPU與內存或外設進行信息交換時,所用的一組數據信號線。它決定了CPU一次并行傳送二進制信息的位數, 反映出CPU的“字長”這個重要性能指標?刂瓶偩【解答】控制總線是在CPU與外部部件之間傳送控制信息(如讀/寫命令、中斷請求命令等)的一組信號線。1-2 單片機應包括哪些基本部件?其主要應用于哪些領域?【解答】一般單片機芯片中包括微處理器、RAM、ROM、I/O接口電路、定時器/計數器,有的還包括A/D、D/A轉換器等。其主要應用于智能化儀器儀表及工業控制領域。1-3 按圖1-11和圖1-12,寫出取第二條指令操作碼和執行第二條指令的過程!窘獯稹緼DD AL,12H指令的取指過程:IP的值(002H)送入地址寄存器AR;IP的內容自動加1,變為003H;AR將地址碼通過地址總線送到存儲器的地址譯碼器,經譯碼后選中002H單元;微處理器給出讀命令MEMR;所選中的002H單元內容04H送上數據總線DB;數據總DB上的數據04H送到數據寄存器DR;因是取指操作,取出的是指令操作碼04H,即由DR送入指令寄存器IR;IR中的操作碼經指令譯碼器ID譯碼后,通過PLA發出執行該指令的有關控制命令。指令操作碼04H 經譯碼后CPU知道這是一條把AL內立即數12H相加的指令。立即數12H在指令的第二字節中,則執行第二條指令就是從內存中取出指令的第二字節送ALU的I2端把AL的內容送到I1端,并在ALU中做加法運算,然后把運算結果通過ALU的O端再送到AL中ADD AL,12H指令的執行過程:
IP的值(003H)送入地址寄存器AR;IP的內容自動加1,變為004H;AR將地址碼通過地址總線送到存儲器的地址譯碼器,經譯碼后選中003H單元;微處理器給出讀命令MEMR;所選中的003H單元內容12H送上數據總線DB;DB上的數據12H送到數據寄存器DR;由指令操作碼的譯碼可知,指令要求把第二字節的數據送入ALU進行運算,則DR上的數據12H通過內部總線送到ALU的I2端; 將AL 中的內容送到ALU的I1端;在ALU中作加法、然后將運算結果通過內部總線送回到AL中。
到此第二條指令執行完畢。1-4 計算題
【解答】
(17.562) 10 = (10001.100011)2
(1101011011.10101) 2 = (859.65625)10
(1000) 10 = (3E8)16
(10000) 10 = (2710)16
(3F9) 16 = (1017)10
(1101011011.10101) 2 = (35B.A8)16
(5D7.5C)16 = (10111010111.010111)2
(497.72) 10 = (010010010111.01110010)BCD
有一32位浮點數的格式如下:
0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
則該數的十進制表示為 +0.82421875 。
(10)按上題浮點格式,所能表示的最大正數為(1-2-23)*2+127 ,最小負數為 -2-150 ,最小絕對值為 2-150 。
(11)十進制+123的補碼為01111011 ,十進制-123的補碼為10000101。
∵ [+123]原 =01111011
[+123]反 =01111011
∴ [+123]補 =01111011
∵ [-123]原 =11111011
[-123]反 =10000100
∴ [-123]補 =10000101 (12)十進制數+0.99609375的補碼為: [+0.99609375]補=0.11111111
十進制數-0.99609375的補碼為: [-0.99609375]補=1.00000001
(13) 已知X=0.110001,Y=-0.001001, 則X+Y=0.101000
∵ ; [X]補=0.110001
[Y]補=1.110111
∴ [X+Y]補=[X]補+[Y]補=0.110001+1.110111=0.101000
(14) 已知X=0.101100,Y=-0.100111, 則X-Y=1.010011
∵ [X]補=0.101100
[Y]補=1.011001
[-Y]補=0.100111
∴ [X-Y]補= [X]補+[-Y]補=0.101100+0.100111=1.010011
已知X=0.1001, Y=0.1101, 則X+Y=1.0110 ,有溢出
∵ [X]補=0.1001
[Y]補=0.1101
∴ [X+Y]補=[X]補+[Y]補=0.1001+0.1101=1.0110 (有溢出)
已知X=-1110,Y=-1100,則X+Y=+0110 , 有溢出
[X]補=1.0010
[Y]補=1.0100
[X+Y]補=[X]補+[Y]補=1.0010+1.0100=10.0110 (有溢出)
第二章 微處理器結構
2-1 解釋題
AD0~AD15雙重總線
【解答】雙重總線就是采用分時的辦法復用總線。8086CPU在每一個總線周期的T1時, AD0~AD15用作地址總線傳輸地址信號,而在總線周期的其它T狀態為數據總線,用作傳輸數據。
邏輯地址
【解答】在程序中所涉及的地址叫做邏輯地址。邏輯地址由兩部分組成,段基址:段內偏移地址
物理地址
【解答】信息在存儲器中實際存放的地址叫做物理地址。物理地址=段基址*16+段內偏移地址。
溢出
【解答】帶符號數的運算結果超出計算機所能表示的數值范圍稱為“溢出”。
指令
【解答】控制計算機完成某一個基本操作的命令(如:傳送、加、移位、輸出、輸入等)叫做指令。
(6) 等待周期TW
【解答】當被選中進行讀寫的存儲器或I/O設備,無法在總線周期規定的T狀
態內完成數據的讀寫操作時,就由該存儲器或外設向CPU的READY引腳發一個低電平信號,請求延長總線周期,等待它們的讀寫操作完成。
8086CPU受到該請求后,就在T3和T4之間插入一個等待周期 TW(TW也以時鐘周期為單位),加入TW的個數取決于READY的持續時間。在TW期間,總線上的狀態一直保持不變。
(7) 空閑周期Ti
【解答】在兩個總線周期之間,當總線上無數據傳輸操作時,則系統總線處于空閑狀態,此時即執行空閑周期Ti,Ti也以時鐘周期T為單位,至于到底插入多少個Ti與8086CPU執行的指令有關。
(8) 指令的尋址方式
【解答】所謂指令的尋址方式是指在指令中操作數的表示方式。
2-2 扼要說明EU和BIU的功能
【解答】EU從BIU的指令隊列中獲得指令,然后執行該指令,完成指令所規定的操作,EU不與外部總線相聯系。
BIU同外部總線連接為EU完成所有的總線操作,并在∑地址加法器中形成20位內存物理地址。
2-3 寫出寄存器AX、BX、CX、DX、SI、DI的隱含用法
【解答】
AX:乘除法指令中用作累加器、I/O指令中作為數據寄存器。AL還在BCD指令和XLAT指令中作累加器。
BX;間接尋址時,作為地址寄存器和基址寄存器。在XLAT指令中用作基址寄存器。
CX:串操作指令和LOOP指令時用作循環次數計數器。CL在循環和移位指令中用作循環和移位次數計數器。
DX:字乘、字除指令中用作高字積、被除數高字輔助寄存器。I/O指令間接尋址時作端口地址寄存器。
SI:間接尋址時,作為地址寄存器和變址寄存器、串操作時的源變址寄存器。
DI:間接尋址時,作為地址寄存器和變址寄存器、串操作時的目的變址寄存器。
2-4寫出8086CPU的標志寄存器中三個控制位的功能
【解答】
DF:方向標志。決定在進行串操作時,每執行一條串操作指令,DF=0時對源、目的操作數地址的修正是遞增、DF=1時是遞減。
IF:中斷允許標志。表示目前系統是否允許響應外部的可屏蔽中斷請求。IF=1時允許、IF=0時不允許。
TF:陷阱標志。當TF=1時,是“單步工作方式”,常用于程序的調試。微處理器每執行完一條指令便產生一個內部中斷,轉去執行一個中斷服務程序,可以借助中斷服務程序來檢查每條指令的執行情況。TF=0是“連續工作方式”,程序連續執行。
2-5 說明段寄存器的作用
【解答】8086CPU內部數據通道和內部寄存器均為16位,而8086CPU的地址線有20條,可以尋址1MB空間。為了尋址1MB地址,CPU引入了“分段”管理的概念,把可直接尋址的1MB內存空間分成了策劃能夠作“段”的邏輯區域,每個段的最大物理長度為64K,段寄存器就是用來存放段的16位起始地址的。8086 CPU有4個段寄存器CS、DS、ES、SS,分別用來存儲代碼段、數據段、附加數據段、堆棧段的起始地址。
2-6 執行如下指令后,標志寄存器中各狀態位之值
MOV AX,32C5H
ADD AX,546AH
【解答】
MOV AX,0E453H
ADD AX,0C572H
【解答】
2-7說明8086CPU最大方式和最小方式工作時的主要區別
【解答】8086CPU工作于最小模式時,用于構成小型的單處理機系統,而工作于最大模式時用于構成多處理機和協處理機系統。這兩種模式的主要區別是最大模式系統的控制總線增加了一片專用的總線控制器芯片8288。
2-8 說明8086系統中內存儲器的物理地址的形成過程。
【解答】8086CPU存儲器物理單元的20位物理地址是通過將16位的“段基址”左移4位和16位的“段內偏移地址”在 20位地址加法器中相加得到的!岸位贰贝娣旁诙渭拇嫫鰿S、SS、DS、ES中,而“段內偏移地址”由SP、BP、SI、DI、IP、BX以及上述寄存器的組合而形成。
2-9有一雙字87654321H的地址為30101H,畫出其在字節編址的內存中的存放情況。
【解答】
2-10 說明8086的指令周期、總線周期和時鐘周期的區別和關系。
【解答】
執行一條指令所需要的時間稱為指令周期,不同的指令周期是不等長的。在取指令過程中以及執行指令時取操作數或存運行結果,都要通過總線,因此一個總線周期中可能由一個或幾個總線周期組成。
CPU從存儲器或輸入輸出端口存取一個字節或字的時間叫做總
線周期。8086CPU的總線周期至少由4個時鐘周期組成,分別以T1、T2、T3、T4表示。
時鐘周期是CPU的時間基準,由計算機的主頻決定。例如8086 CPU的主頻為5MHZ,則一個時鐘周期為1/(5*106)=0.2*10-6s=0.2s=200ns
2-11 根據8086 I/O的讀寫時序圖,回答下列問題:
地址信號在哪段時間內有效?
【解答】在讀寫總線周期的T1時間內有效。
讀與寫操作的區別?
【解答】讀總線周期中,數據在進入T3狀態時才出現在復用總線上,而在寫周期中數據在T2狀態時就出現在復用總線上。
I/O讀寫時序同存儲器讀寫時序的區別?
【解答】I/O讀寫時序同存儲器讀寫時序沒有什么區別,只是M/IO信號的狀態不同。當進行內存讀寫操作時,M/IO為高電平;而進行I/O端口讀寫操作時M/IO為低電平。
什么情況下需要插入等待周期TW?
【解答】當內存或I/O端口存取速度慢,無法在CPU的總線周期內完成相應操作時,需要插入一個或幾個等待周期TW ,以延長相應總線周期。
2-12 扼要說明80286同8086的主要區別。
【解答】80286是一種高性能的16位微處理器,片內集成有存儲管理和保護機構,能用四層特權支持操作系統和任務的分離,能可靠地支持多用戶和多任務系統。它的實地址方式兼容了8086的全部功能,同時它增加了保護虛地址方式。80286有24條地址線,在實地址方式下只使用20條地址線,有1MB的尋址能力;在保護虛地址方式下,使用24條地址線,有16MB尋址能力,它能將每個任務的230字節(1GB)的虛地址映射到224字節的物理地址中去。
80286的內部由地址部件AU、指令部件IU、執行部件EU和總線部件BIU四大部分組成,和8086的EU與BIU組成相比,四個部件的并行操作,進一步提高了吞吐率、加快了處理速度。
2-13 扼要說明80486同80386的主要區別。
【解答】80486是繼80386之后新的32位微處理器,同80386相比,在相同的工作頻率下,其處理速度提高了2~4倍。80486采用了RISC(精簡指令系統計算機)技術,降低了執行每條指令所需要的時鐘數;80486采用了與80386不同的突發式總線技術,有效地解決了微處理器同內存之間的數據交換問題;80486內部集成了FPU(浮點部件)和Cache(超高速緩沖存儲器),CPU和FPU、CPU和Cache之間都采用高速總線進行數據傳送,使其處理速度得到極大的提高。
80486的在體系結構上除沿用80386的總線接口部件BIU、指令預取部件IPU、指令譯碼部件IDU、執行部件EU、存儲器管理部件SU和PU、控制部件外,為提高性能又增加了高速緩存部件Cache、高性能浮點處理部件FPU。
2-14扼要說明Pentium同Pentium Pro的主要區別。(略)
2-15扼要說明Pentium MMX的特點。(略)
2-16扼要說明Pentium Ⅱ同 Pentium Ⅲ的特點 。 (略)
第三章 8086微處理器的指令系統
3-1 指出下列各指令中源操作數和目的操作數的尋址方式,并說明操作數的類型(注:字節數據或字數據)
(1)MOV SI,1000H
(2)MOV BL,[1000H]
(3)MOV [BX+0100H],CX
(4)MOV BYTE PTR [BP] [SI],100
(5)MOV AX,[BX+DI+0004H]
【解答】 源操作數 目的操作數 操作數類型
(1) 立即尋址 寄存器尋址 字類型
(2) 直接尋址 寄存器尋址 字節類型
(3) 寄存器尋址 基址尋址 字類型
(4) 立即尋址 基址加變址尋址 字節類型
(5) 基址加變址尋址 寄存器尋址 字類型
3-2 指出下列各非法指令的錯誤原因
MOV AL,BX
【解答】源與目的操作數類型不一致。
MOV CL,200H
【解答】源操作數太大了,CL是8位寄存器,能存儲的最大數只能到FFH。
MOV CS,AX
【解答】不允許用傳送指令給CS賦值。
MOV DS,3000H
【解答】8086沒有給段寄存器直接置值的指令,應該通過寄存器輾轉設置。
MOV [DI],[SI]
【解答】存儲器單元之間不可直接傳送,即兩個操作數不能同為內存操作數。
MOV AL,[CX]
【解答】CX不可以作為間址寄存器,只能用BX、BP、SI、DI。
MOV AL,[SI] [DI]
【解答】 基址加變址尋址時 ,基址寄存器只能用BX或BP,變址寄存器只能用SI或DI,這里源操作數尋址用[SI+DI]是錯誤的。
ADD BX,DS
【解答】DS段寄存器不能當通用寄存器用,故不可以出現在ADD指令中。
INC [BX]
【解答】 [BX]尋址數據類型不明確,應加類型說明 BYTE PTR [BX] 或 WORD PTR [BX]。
(10) SHL AX
【解答】缺少一個操作數。正確格式應為SHL AX, 1或SHL AX, CL(1或CL為移位次數)。
設DS=1000H,SS=2000H,AX=1A2BH,BX=1200H,CX=339AH,BP=1200H, SP=1352H,SI=1354H,(11350H)=0A5H,(11351H)=3CH,(11352H)=0FFH,(11353H)=26H,(11354H)=52H,(11355H)=0E7H,(126A4H)=9DH,(126A5H)=16H,(21350H)=88H,(21351H)=51H
下列各指令都在此環境下執行,在各小題的空格中填入相應各指令的執行結果。
MOV AX,1352H
【解答】AX=1352H
MOV AX,[1352H]
【解答】AX=26FFH
MOV 0150H [BX],CH
【解答】(11350H)=33H, (11351H)=3CH
MOV AX,0150H [BP]
【解答】AX=5188H
POP AX
【解答】AX=(21352H), SP=1354H
ADD [SI],CX
【解答】(11354H)=0ECH, (11355H)=1AH, SF=0, ZF=0, PF=1, CF=1, OF=0
SUB BH,0150H [BX] [SI]
【解答】BH=75H, SF= 0, ZF=0, PF=0, CF=1, OF=0
INC BYTE PTR 0152H [BX]
【解答】(11352H)=00H, (11353H)=26H, CF=0
INC WORD PTR 0152H [BX]
【解答】(11352H)=00H, (11353H)=27H, CF=0
(10) SAR BYTE PTR 0150H [BX],1
【解答】(11350H)=0D2H, CF=1, OF=0
(11)SAL BYTE PTR 0150H [BX],1
【解答】(11350H)=4AH, CF=1, OF=1
寫出下列無條件轉移指令執行后的CS和IP值。
【解答】
CS的值 IP的值
(1) 2000H 016EH+2+0FFE7H=0157H
(2) 2000H 016EH+2+0016H=0186H
(3) 2000H 16C0H
(4) 3000H 0146H
(5) 2000H 1770H
(6) 3000H 0146H
3-5 閱讀下列各小題的指令序列,在后面空格中填入該指令的執行結果。
【解答】
(1) AL=02H, BL=85H, CF=1
(2) AX=0000H, CF=0
(3) AX=0000H, CF=0
(4) BX=0FFFFH, CF=1
寫出每條指令執行后各寄存器內容的變化情況,并畫出堆棧的存儲情況。
【解答】
(2) 轉向 L1
(3) 轉向L2bsp; LE
(3) NB, NBE, NL, NLE
(4) NB, NBE, NL, NLE
(5) B, BE, NL, NLE
(6) B, BE, L, LE
(7) B, BE, L, LE
(8) NB, BE, NL, LE
用移位和循環指令編寫一段指令序列,實現將在DX:AX中的32位二進制數乘2及除2的功能。
【解答】
乘2功能 除2功能
SHL AX,1 SHR DX,1
RCL DX,1 RCR AX,1
乘2功能 除2功能
SAL AX,1 SAR DX,1
RCL DX,1 RCR AX,1
3-10 數0~15的平方值存放在數據段起始地址為1000H的內存連續單元中,用XLAT指令編寫一段指令序列,實現用查表法求得數N(0~15)得平方值。
【解答】MOV BX,1000H
MOV AL,N ;N為0~15之間任意一個數
XLAT ;N的平方值在AL中
3-11 編寫一段指令序列,測試AL的內容,若低4位全為0,就轉移去由標號NEXT表示的目標地址執行程序,否則就繼續順序執行下去。
【解答】TEST AL,0FH
JZ NEXT
3-12 寄存器AX和BX各有兩位非壓縮BCD數,編寫一段指令序列,將這兩個兩位非壓縮BCD數的和存入AX。
【解答】 ADD AL,BL ;個位加
AAA ;個位非壓縮BCD加法調整
MOV CL,AL ;個位BCD和暫保存在CL
MOV AL,AH
ADD AL,BH ;十位加
AAA ;十位非壓縮BCD加法調整
MOV AH,AL
MOV AL,CL ;兩位非壓縮BCD和存入AX
3-13 用串操作指令編寫一段指令序列。
【解答】 (1)MOV SI,0200H
MOV DI,1400H
STD
MOV CX,100
REP MOVSB
(2)MOV DI,0100H
MOV CX,100
CLD
MOV AX,2A84H
REPNZ SCASW
JZ FOUND
【微型計算機原理及應用(一)】相關文章:
計算機審計一般原理及應用03-22
微型計算機技術在電臺維護中的應用12-01
公鑰密碼原理及其應用12-27
小概率事件原理及其應用03-07
淺談小概率事件原理及其應用03-07
記憶原理在語文教學中的應用03-09
PC/104模塊Diamond-MM-AT的原理與應用12-05
從自動剎車系統的工作原理中闡述應用11-23