《微機原理與接口技術》(第二版) 龔尚福主編課后答案
《微機原理與接口技術》(第二版) 的課后答案大家核對了嗎?下面是陽光網小編為大家推薦一些《微機原理與接口技術》(第二版) 龔尚福主編課后答案預覽和下載地址,希望大家有用哦。
《微機原理與接口技術》(第二版) 龔尚福主編課后答案免費下載地址
//novawrite.com/pic/original/soft/答案/計算機類/《微機原理與接口技術》(第二版)龔尚福-習題解析和實驗指導.doc |
《微機原理與接口技術》(第二版) 龔尚福主編課后答案預覽
.2 8086微處理器由哪幾部分組成?各部分的功能是什么?
【解】:按功能可分為兩部分:總線接口單元BIU(Bus Interface Unit)和執(zhí)行單元EU(Execution Unit)。
總線接口單元BIU是8086 CPU在存儲器和I/O設備之間的接口部件,負責對全部引腳的操作,即8086對存儲器和I/O設備的所有操作都是由BIU
完成的。所有對外部總線的操作都必須有正確的地址和適當?shù)目刂菩盘枺珺IU中的各部件主要是圍繞這個目標設計的。它提供了16位雙向數(shù)據(jù)總
線、20位地址總線和若干條控制總線。
其具體任務是:負責從內存單元中預取指令,并將它們送到指令隊列緩沖器暫存。CPU執(zhí)行指令時,總線接口單元要配合執(zhí)行單元,從指定
的內存單元或I/O端口中取出數(shù)據(jù)傳送給執(zhí)行單元,或者把執(zhí)行單元的處理結果傳送到指定的內存單元或I/O端口中。
執(zhí)行單元EU中包含1個16位的運算器ALU、8個16位的寄存器、1個16位標志寄存器FR、1個運算暫存器和執(zhí)行單元的控制電路。這個單元進行
所有指令的解釋和執(zhí)行,同時管理上述有關的寄存器。EU對指令的執(zhí)行是從取指令操作碼開始的,它從總線接口單元的指令隊列緩沖器中每次取
一個字節(jié)。如果指令隊列緩沖器中是空的,那么EU就要等待BIU通過外部總線從存儲器中取得指令并送到EU,通過譯碼電路分析,發(fā)出相應控制
命令,控制ALU數(shù)據(jù)總線中數(shù)據(jù)的流向。
2.3 簡述8086 CPU的寄存器組織。
【解】:(1)通用寄存器:通用寄存器又稱數(shù)據(jù)寄存器,既可作為16位數(shù)據(jù)寄存器使用,也可作為兩個8位數(shù)據(jù)寄存器使用。當用作16位時,稱
為AX、BX、CX、DX。當用作8位時,AH、BH、CH、DH存放高字節(jié),AL、BL、CL、DL存放低字節(jié),并且可獨立尋址。這樣,4個16位寄存器就可當作
8個8位寄存器來使用。
(2)段寄存器:段寄存器共有4個CS、DS、SS、ES。代碼段寄存器CS表示當前使用的指令代碼可以從該段寄存器指定的存儲器段中取得,相
應的偏移值則由IP提供;堆棧段寄存器SS指定當前堆棧的起始地址;數(shù)據(jù)段寄存器DS指示當前程序使用的數(shù)據(jù)所存放段的起始地址;附加段寄存
器ES則指出當前程序使用附加段地址的起始位置,該段一般用來存放原始數(shù)據(jù)或運算結果。
(3)指針和變址寄存器:堆棧指針SP用以指出在堆棧段中當前棧頂?shù)牡刂。入?PUSH)和出棧(POP)指令由SP給出棧頂?shù)钠频刂;?/p>
址指針BP指出要處理的數(shù)據(jù)在堆棧段中的基地址,故稱為基址指針寄存器。變址寄存器SI和DI用來存放當前數(shù)據(jù)段中某個單元的偏移量。
(4)指令指針與標志寄存器:指令指針I(yè)P的功能跟Z80 CPU中的程序計數(shù)器PC的功能類似。正常運行時,IP中存放的是BIU要取的下一條指
令的偏移地址。它具有自動加1功能,每當執(zhí)行一次取指令操作時,它將自動加1,使它指向要取的下一內存單元,每取一個字節(jié)后IP內容加1,
而取一個字后IP內容則加2。某些指令可使IP值改變,某些指令還可使IP值壓入堆;驈亩褩V袕棾觥酥炯拇嫫鱂LAGS是16位的寄存器,8086共
使用了9個有效位,標志寄存器格式如圖2.5所示。其中的6位是狀態(tài)標志位,3位為控制標志位。狀態(tài)標志位是當一些指令執(zhí)行后,表征所產生數(shù)
據(jù)的一些特征。而控制標志位則可以由程序寫入,以達到控制處理機狀態(tài)或程序執(zhí)行方式的表征。
2.4 試述8086 CPU標志寄存器各位的含義與作用。
【解】:(1) 6個狀態(tài)標志位的功能分別敘述如下:
CF(Carry Flag)——進位標志位。當執(zhí)行一個加法(或減法)運算,使最高位產生進位(或借位)時,CF為1;否則為0。
PF(Parity Flag)——奇偶標志位。該標志位反映運算結果中1的個數(shù)是偶數(shù)還是奇數(shù)。當指令執(zhí)行結果的低8位中含有偶數(shù)個1時,PF=1;否
則PF=0。
AF(Auxiliary carry Flag)——輔助進位標志位。當執(zhí)行一個加法(或減法)運算,使結果的低4位向高4位有進位(或借位)時,AF=1;否則
AF=0。
ZF(Zero Flag)——零標志位。若當前的運算結果為零,ZF=1;否則ZF=0。
SF(Sign Flag)——符號標志位。它和運算結果的最高位相同。
OF(Overflow Flag)——溢出標志位。當補碼運算有溢出時,OF=1;否則OF=0。
(2) 3個控制標志位用來控制CPU的操作,由指令進行置位和復位。
DF(Direction Flag)——方向標志位。它用以指定字符串處理時的方向,當該位置“1”時,字符串以遞減順序處理,即地址以從高到低順
序遞減。反之,則以遞增順序處理。
IF(Interrupt enable Flag)——中斷允許標志位。它用來控制8086是否允許接收外部中斷請求。若IF=1,8086能響應外部中斷,反之則不
響應外部中斷。
注意:IF的狀態(tài)不影響非屏蔽中斷請求(NMI)和CPU內部中斷請求。
TF(Trap Flag)——跟蹤標志位。它是為調試程序而設定的陷阱控制位。當該位置“1”時,8086 CPU處于單步狀態(tài),此時CPU每執(zhí)行完一條
指令就自動產生一次內部中斷。當該位復位后,CPU恢復正常工作。
2.5 8086中,存儲器為什么采用分段管理?
【解】:8086/8088的地址總線寬度為20位,其最大尋址空間是1 MB。而其他微處理器則在實模式下只能訪問前1 MB的存儲器地址。實際上,實
模式就是為8086/8088而設計的工作方式,它要解決在16位字長的機器里怎么提供20位地址的`問題,而解決的辦法是采用存儲器地址分段的方法
。程序員在編制程序時要把存儲器劃分成段,在每個段內地址空間是線性增長的。每個段的大小可達64 KB,這樣段內地址可以用16位表示。存
儲器分段的方法雖然給程序設計帶來一定的麻煩,但這種方法可以擴大存儲空間,而且對于程序的再定位也是很方便的。
2.6 什么是邏輯地址?什么是物理地址?如何由邏輯地址計算物理地址?
【解】:物理地址:完成存儲器單元或I/O端口尋址的實際地址成為物理地址,CPU型號不同其物理地址也不同。物理地址是指CPU和存儲器進行
數(shù)據(jù)交換時實際所使用的地址,而邏輯地址是程序使用的地址。物理地址由兩部分組成:段基址(段起始地址高16位)和偏移地址。前者由段寄存
器給出,后者是指存儲單元所在的位置離段起始地址的偏移距離。當CPU尋址某個存儲單元時,先將段寄存器的內容左移4位,然后加上指令中提
供的16位偏移地址而形成20位物理地址。在取指令時,CPU自動選擇代碼段寄存器CS,左移4位后,加上指令提供的16位偏移地址,計算出要取指
令的物理地址。堆棧操作時,CPU自動選擇堆棧段寄存器SS,將其內容左移4位后,加上指令提供的16位偏移地址,計算出棧頂單元的物理地址。
每當存取操作數(shù)時,CPU會自動選擇數(shù)據(jù)段寄存器(或附加段寄存器ES),將段基值左移4位后加上16位偏移地址,得到操作數(shù)在內存的物理地址。
2.9 在80x86微機的輸入/輸出指令中,I/O端號通常是由DX寄存器提供的,但有時也可以在指令中直接指定00H~0FFH的端口號。試問可直接由
指令指定的I/O端口數(shù)是多少?
【解】:由于在80x86的輸入/輸出指令中,可以直接在00H~0FFH指定,所以直接由指令指定的I/O端口數(shù)是256。
3.1 指令分成幾部分?每部分的作用是什么?
【解】:每條指令由兩部分組成:操作碼字段和地址碼字段。操作碼字段:用來說明該指令所要完成的操作。
地址碼字段:用來描述該指令的操作對象。一般是直接給出操作數(shù),或者給出操作數(shù)存放的寄存器編號,或者給出操作數(shù)存放的存儲單元的
地址或有關地址的信息。
3.2 指出下列MOV指令的源操作數(shù)的尋址方式:
MOV AX,1234H
MOV AX,BX
MOV AX,[BX]
MOV AX,TABLE;TABLE ;TABLE是一個變量名
MOV AX,[1234H]
MOV AX,[BX+1234H]
MOV AX,[BP][SI]
MOV AX,[BX+SI-1234H]
【解】:MOV AX,1234H 立即尋址
MOV AX,BX 寄存器尋址
MOV AX,[BX] 寄存器間接尋址
MOV AX,TABLE ;TABLE是一個變量名 直接尋址方式
MOV AX,[1234H] 直接尋址方式
MOV AX,[BX+1234H] 寄存器相對尋址
MOV AX,[BP][SI] 基址變址尋址
MOV AX,[BX+SI-1234H] 相對地址變址尋址
3.3 設:(DS)=2000H,(BX)=0100H,(SS)=1000H,(BP)=0010H,TABLE的物理地址為2000AH,(SI)=0002H。求下列每條指令源
操作數(shù)的存儲單元地址:
MOV AX,[1234H]
MOV AX,[BX]
MOV AX,TABLE[BX]
MOV AX,[BP]
MOV AX,[BP][SI]
【解】: 存儲單元地址:(DS)×10H + EA =2000H×10H+1234H=21234H
存儲單元地址:(DS)×10H +(BX)=2000H×10H+0100H=20100H
存儲單元地址:(DS)×10H+EA=2000H×10H+0100H+000AH=2010AH
存儲單元地址:(SS)×10H+EA=1000H×10H+0010H=10010H
儲單元地址:(SS)×10H+EA=1000H×10H+0010H+0002H =10012H
3.4 設ARRAY是字數(shù)組的首地址,寫出將第5個字元素取出送AX寄存器的指令,要求使用以下幾種尋址方式:
⑴ 直接尋址 ⑵ 寄存器間接尋址 ⑶ 寄存器相對尋址 ⑷ 基址變址尋址
【解】:(1)直接尋址(2)寄存器間接尋址(3)寄存器相對尋址(4)基址變址尋址
MOV AX, ARRAY+8 MOV BX, ARRAY+8 MOV BX, 8 LEA BX, ARRAY
MOV AX, [BX] MOV AX, ARRAY[BX] MOV SI, 8
MOV AX,[BX+SI]
3.7 設當前(CS)=2000H,(IP)=2000H,標號NEXT定義在當前代碼段偏移地址是0100H處,(DS)=1000H,(BX)=1000H,(11000H)
=00H,(11001H)=30H,數(shù)據(jù)段定義的字變量ARRAY的內容為1000H,試寫出下列轉移指令的目標轉移地址
、 JMP NEAR PTR
⑵ JMP BX
、 JMP WORD PTR ARRAY
【解】:⑴ JMP NEAR PTR 此轉移指令的目標轉移地址為:20100H
、 JMP BX 此轉移指令的目標轉移地址為:21000H
、 JMP WORD PTR ARRAY 此轉移指令的目標轉移地址為:23000H
3.8 設當前(CS)=2000H,(IP)=2000H,標號NEXT定義在3000H:1000H處。當前(DS)=1000H,(BX)=1000H,(11000H)=00H,
(11001H)=03H,(11002H)=00H,(11003H)=30H,數(shù)據(jù)段定義的字變量ARRAY的內容為0300H,(ARRAY+2)=3000H,試寫出下列轉移指令的
目標轉移地址:
、 JMP FAR PTR NEXT
、 JMP DWORD ARRAY
【解】:⑴ JMP FAR PTR NEXT 此轉移指令的目標轉移地址為:31000H
、 JMP DWORD ARRAY 此轉移指令的目標轉移地址為:30300H
3.9 下列每組指令有何區(qū)別?
(1) MOV AX,1234H MOV AX,[1234H]
(2) MOV AX,TABLE MOV AX,[TABLE]
(3) MOV AX,TABLE LEA AX,TALBE
(4) MOV AX,BX MOV AX,[BX]
【解】:(1) MOV AX,1234H 將立即數(shù)1234H送到寄存器AX中
MOV AX,[1234H] 將存儲區(qū)[1234H]中的內容送到寄存器AX中
(2) MOV AX,TABLE 將標號TABLE的地址送到寄存器AX中
MOV AX,[TABLE] 將存儲區(qū)[TABLE] 中的內容送到寄存器AX中
(3) MOV AX,TABLE 將標號TABLE的地址送到寄存器AX中
LEA AX,TALBE 將標號TABLE的地址送到寄存器AX中
(4) MOV AX,BX 寄存器尋址
MOV AX,[BX] 寄存器間接尋址
3.10 MOV CS,AX指令正確嗎?
【解】:MOV CS,AX指令不正確。因為CS是指令寄存器,由系統(tǒng)自動改變,不能由指令進行更改。
3.11 寫一指令序列,將3456H裝入DS寄存器。
【解】:MOV AX, 3456H
MOV DS, AX
3.14 若正在訪問堆棧中03600H單元,則SS和SP的值是多少?
【解】:若正在訪問堆棧中03600H單元,則SS和SP的值會有好多組合,其中可以有SS是0300H,SP是0600H。
3.15 若(SS)=2000H,(SP)
=000AH,先執(zhí)行將字數(shù)據(jù)1234H和5678H壓入堆棧的操作,再執(zhí)行彈出一個字數(shù)據(jù)的操作,試畫出堆棧區(qū)及SP的內
容變化過程示意圖(標出存儲單元的物理地址)。
【解】:物理地址=(SS)×10H+SP
【《微機原理與接口技術》(第二版) 龔尚福主編課后答案】相關文章: