《微機(jī)原理第3章 習(xí)題答案》由會員分享,可在線閱讀,更多相關(guān)《微機(jī)原理第3章 習(xí)題答案(6頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。
1、第3章 習(xí)題參考答案
1分別指出下列指令中的源操作數(shù)和目的操作數(shù)的尋址方式。
答: 源操作數(shù) 目的操作數(shù)
(1)MOV AX,[SI] 寄存器尋址 寄存器間接尋址
(2)MOV DI,100 寄存器尋址 立即尋址
(3)MOV [BX],AL 寄存器間接 寄存器
(4)MOV [BX][SI],CX 基址+變址 寄存器
(5)ADD DX,106H[SI] 寄存器
2、變址
(6)PUSH?。罼 寄存器
(7)ADD DS:[BP],AX 帶段超越寄存器間接尋址 寄存器
(8)OR AX,DX 寄存器 寄存器
2.設(shè)寄存器(DS)=2000H,(SS)=1500H,(ES)=3200H,(SI)=0A0H,(BX)=100H,(BP)=10H,數(shù)據(jù)段中變量VAL的偏移地址為50H。試指出下列各條指令中源操作數(shù)的尋址方式是什么?對于存儲器操作數(shù),其物理地址是多少?
答: 操作數(shù)的尋址方式 存儲器操作數(shù)PA
(1)MOV AX,[100H
3、] 直接尋址 20100H
(2)MOV CX,ES:[BX] 帶段超越的寄存器間接尋址 ?。?100H
(3)MOV DX,[BX][SI] 基址+變址尋址 200F0H
(4)MOV AX,VAL[SI] 變址尋址 200F0H
(5)MOV BX,1234[BX] 基址尋址 205D2H
(6)MOV AX,[BP] 寄存器間接尋址 15010H
3。 判斷下列指令有誤錯誤,若有,
4、則改之。
答:
(1)PUSH CL 有錯,對堆棧操作數(shù)總是16位的。改為:PHSH CX
(2)ADCAX,0ABH 無,只是CF的值是不確定的(0或1)
(3)OUT 3EBH, AX 有,輸出設(shè)備的端口地址若超過8位,應(yīng)使用DX間接尋址。改為:
MOV DX, 3EBH
OUT?。腦,AX
(4)MUL AL,?。肔 有錯。乘法指令中有AX或AL寄存器是隱含的。改為:MUL CL
(5)MUL AX, 25 有錯。乘法指令中不能用立即數(shù).改為:
MOV BX,25
MUL BX
(6)ROL?。模?5 有錯。移位的次數(shù)由CL寄存器控制。改
5、為:
MOV CL,5
ROL DX,CL
(7)CALL FAR SUM 無錯。
(8)POP?。芌 有錯.寄存器FR是不能單獨(dú)操作的,改為:POPF
(9)MOV 234H, BX 有錯.立即數(shù)不能作為目的操作數(shù)。改為:
MOV BX, 234H
(10)INC [SI] 有錯。該錯誤主要是針對匯編程序的。由于翻譯這條指令時,不知是8位的還是16位的目標(biāo)碼,故要加入宏匯編的綜合運(yùn)算符PTR。改為:INC BYTE PTR [SI]
(11)ADD [BX],456H有錯。改為:ADD WORD PTR [BX], 456H
(12)INT O有錯.這條指令是沒
6、有的
(13)DIV AX ,BX 有錯。除法指令中,AX或DX。AX作為被除數(shù)是隱含的。改為:DIV BX
(14)DEC [BP] 有錯。與題(10)有類似的錯誤.改為:
DEC WORD PTR [BP]
(15)XLAT BX XLAT的操作數(shù)是隱含的,它是一條復(fù)合指令,在執(zhí)行該指令之前,將BX指向表的手地址,AL中存入被轉(zhuǎn)換的碼,然后執(zhí)行該指令。
(16)ADD CX+1 有錯。操作數(shù)CX+1是完全錯誤的。改為: INC CX
(17)DAA AX 有錯。調(diào)整指令是專門對AL寄存器的內(nèi)容進(jìn)行調(diào)整的,故指令中操作數(shù)是隱含的。改為:DAA
4選擇題
7、
(1)帶符號數(shù)-86所表示的二進(jìn)制數(shù)值是(A)
A. 10101010B ?。??!?1100101B
C. 10011101B D?!?1001011B
(2)執(zhí)行MOV?。腖, 2AH 和SHR DL,1兩條指令后,DL寄存器與CF標(biāo)志分別為(D)
A. DL=10110110 CF=1 B. DL= CF=0
C.?。腖= CF=1 D。 DL= CF=1
(3)可將AX寄存器中D0, D5, D8和D11位求反,其余位不變的指令是(C)
A. AND AX,921H B。 OR AX,910H
C. XOR
8、AX,0921H D。 XOR AX,0110H
(4)某存儲單元物理地址為3B4FH,其段地址和偏移地址可選為(B)
A?!?B4FH和104EH B. 3B40H和00FEH
C。 2A00H和114FEH D. 3B4FH和0H
(5)兩個8位二進(jìn)制數(shù)00110101及10110110做“異或"操作后,寄存器FR的下面3個狀態(tài)標(biāo)志分別是(C)
A. PF=1 SF=1 ZF=0 B。 PF=0 SF=1 ZF=1
C. PF=0 SF=1 ZF=0 ?。模?PF=1 SF=1 ZF=1
(6)當(dāng)執(zhí)行存儲器寫指令時,如M
9、OV [SI],AX, 則CPU的外部管腳狀態(tài)是(D)
A。 WR=1 RD=1 M\IO=0 B。 WR=0 RD=1 M\IO=1
C. WR=1 RD=0 M\IO=1 D?!R=0 ?。遥?1 M\IO=1
5:已知(DS)=2000H,(BX)=100H,(SI)=02H,從物理地址20100H單元開始,依次存放數(shù)據(jù)12H,34H,56H,78H,而從物理地址21200H單元開始,依次存放數(shù)據(jù)2AH,,4CH,8BH,98H。試說明下列各條指令單獨(dú)執(zhí)行后AX寄存器的內(nèi)容.
答:
(1)MOV AX,3600H 3600H
10、
(2)MOV AX,[1200H] 4C2AH
(3)MOV AX,BX 0100H
(4)MOV AX,[BX] 3412H
(5)MOV AX,1100H[BX] 4C2AH
(6)MOV AX,[BX][SI] 7856H
?6.設(shè)堆棧指針SP的初值為2400H,(AX)=4000H,(BX)=3600H,問:
(1)執(zhí)行指令“PUSH AX”后,SP=?
(2)再執(zhí)行“PUSH AX"和"POP AX"后,(SP)=? (AX)=? (BX)=?
試畫出堆棧變化示意圖。
11、答:
(1)執(zhí)行指令“PUSH AX”后,則將AX的內(nèi)容推入堆棧,SP先減2((SP)=23FEH),以指示棧頂位置,AL的內(nèi)容推入23FEH,而AH的內(nèi)容推入23FFH
(2)再執(zhí)行“PUSH AX”,SP先減2((SP)=23FCH),BL的內(nèi)容推入23FCH,而BH的內(nèi)容推入23FDH
(3)再執(zhí)行“POP AX”,從SP指針指示的單元(23FCH)中彈出數(shù)據(jù),存入AX中,SP加2((SP)=23FEH),指示棧頂位置。
故3條指令執(zhí)行完畢,
(SP)=23FEH (AX)=3600H (BX)=3600H
7. 指出下面指令序列 的執(zhí)行結(jié)果。
答:
(1)MO
12、V DX, 2000H
MOV BX, 1000H
XHGH BX, DX
(BX)=2000H, (DX)=1000H
(2)MOV AX,1234H
PUSH AX
POP BX
(AX)=1234H, (BX)=1234H
(3)LEA DX,[?。?00H]
MOV BX, DX
(BX)=2000H
(4)MOV AL,08
ADD AL,08
AAA
(AX)=0106
(5)MOV AL,48H
ADD AL,39H
DAA
(AL)=87H
(6)AND?。罫,AL
MOV AL,80
ADC AL,AL
(AL)=0A
13、0H
(7)MOV DX,OFFFH
NEG DX
(DX)=0001H
(8)MOV BL,OB8H
ROR BL,1
(BL)=5CH, CF=0
(9)SUB AX,AX
AND DX,AX
(DX)=0
(10)MOV CL,3
MOV AH,42H
SHR AH,XL
(AH)=08H,CF=0
(11)MOV AX, 34EBH
MOV CL,5FH
DIV CL
(AX)=8FH
(12)MOV AL,08H
MOV?。拢?09
MUL BL
AAM
(AX)=0702H
(13)MOV BL,9
MOV AX,0702H
AAD
DIV BL
(AX)=0008H
(14)MOV AL98H
CBW
(AX)=0FF98H
(15)MOV AH,2
MOV DL,`W`
INT 21H
結(jié)果=執(zhí)行DOS的2號功能調(diào)用,在屏幕上顯示字母W
6 / 6