好文档 - 专业文书写作范文服务资料分享网站

微机原理第3章 习题答案

天下 分享 时间: 加入收藏 我要投稿 点赞

第3章 习题参考答案

1分别指出下列指令中的源操作数和目的操作数的寻址方式。

答: 源操作数 目的操作数

(1)MOV AX,[SI] 寄存器寻址 寄存器间接寻址 (2)MOV DI,100 寄存器寻址 立即寻址 (3)MOV [BX],AL 寄存器间接 寄存器 (4)MOV [BX][SI],CX 基址+变址 寄存器 (5)ADD DX,106H[SI] 寄存器 变址 (6)PUSH AX 寄存器

(7)ADD DS:[BP],AX 带段超越寄存器间接寻址 寄存器 (8)OR AX,DX 寄存器 寄存器

2.设寄存器(DS)=2000H,(SS)=1500H,(ES)=3200H,(SI)=0A0H,(BX)=100H,(BP)=10H,数据段中变量VAL的偏移地址为50H。试指出下列各条指令中源操作数的寻址方式是什么?对于存储器操作数,其物理地址是多少?

答: 操作数的寻址方式 存储器操作数PA

(1)MOV AX,[100H] 直接寻址 20100H (2)MOV CX,ES:[BX] 带段超越的寄存器间接寻址 32100H (3)MOV DX,[BX][SI] 基址+变址寻址 200F0H (4)MOV AX,VAL[SI] 变址寻址 200F0H (5)MOV BX,1234[BX] 基址寻址 205D2H (6)MOV AX,[BP] 寄存器间接寻址 15010H

3. 判断下列指令有误错误,若有,则改之。

答:

(1)PUSH CL 有错,对堆栈操作数总是16位的。改为:PHSH CX (2)ADCAX,0ABH 无,只是CF的值是不确定的(0或1)

(3)OUT 3EBH, AX 有,输出设备的端口地址若超过8位,应使用DX间接寻址。改为:

MOV DX, 3EBH OUT DX,AX

(4)MUL AL, CL 有错。乘法指令中有AX或AL寄存器是隐含的。改为:

MUL CL

(5)MUL AX, 25 有错。乘法指令中不能用立即数。改为: MOV BX,25 MUL BX

(6)ROL DX,5 有错。移位的次数由CL寄存器控制。改为: MOV CL,5 ROL DX,CL

(7)CALL FAR SUM 无错。

(8)POP FR 有错。寄存器FR是不能单独操作的,改为:POPF (9)MOV 234H, BX 有错。立即数不能作为目的操作数。改为: MOV BX, 234H

(10)INC [SI] 有错。该错误主要是针对汇编程序的。由于翻译这条指令时,不知是8位的还是16位的目标码,故要加入宏汇编的综合运算符PTR。改为:INC BYTE PTR [SI]

(11)ADD [BX],456H有错。改为:ADD WORD PTR [BX], 456H (12)INT O有错。这条指令是没有的

(13)DIV AX ,BX 有错。除法指令中,AX或DX.AX作为被除数是隐含的。改为:DIV BX

(14)DEC [BP] 有错。与题(10)有类似的错误。改为: DEC WORD PTR [BP]

(15)XLAT BX XLAT的操作数是隐含的,它是一条复合指令,在执行该指令之前,将BX指向表的手地址,AL中存入被转换的码,然后执行该指令。

(16)ADD CX+1 有错。操作数CX+1是完全错误的。改为: INC CX (17)DAA AX 有错。调整指令是专门对AL寄存器的内容进行调整的,故指令中操作数是隐含的。改为:DAA

4选择题

(1)带符号数-86所表示的二进制数值是(A) A. 10101010B B. 01100101B C. 10011101B D. 11001011B

(2)执行MOV DL, 2AH 和SHR DL,1两条指令后,DL寄存器与CF标志分别为(D)

A. DL=10110110 CF=1 B. DL=00110101 CF=0 C. DL=00110100 CF=1 D. DL=00010101 CF=1

(3)可将AX寄存器中D0, D5, D8和D11位求反,其余位不变的指令是(C)

A. AND AX,921H B. OR AX,910H

C. XOR AX,0921H D. XOR AX,0110H

(4)某存储单元物理地址为3B4FH,其段地址和偏移地址可选为(B)

A. 3B4FH和104EH B. 3B40H和00FEH

C. 2A00H和114FEH D. 3B4FH和0H

(5)两个8位二进制数00110101及10110110做“异或”操作后,寄存器FR的下面3个状态标志分别是(C)

A. PF=1 SF=1 ZF=0 B. PF=0 SF=1 ZF=1 C. PF=0 SF=1 ZF=0 D. PF=1 SF=1 ZF=1

(6)当执行存储器写指令时,如MOV [SI],AX, 则CPU的外部管脚状态是(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. WR=0 RD=1 M\\IO=1

5:已知(DS)=2000H,(BX)=100H,(SI)=02H,从物理地址20100H单元开始,依次存放数据12H,34H,56H,78H,而从物理地址21200H单元开始,依次存放数据2AH,,4CH,8BH,98H。试说明下列各条指令单独执行后AX寄存器的内容。

答:

(1)MOV AX,3600H 3600H (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.设堆栈指针SP的初值为2400H,(AX)=4000H,(BX)=3600H,问:

(1)执行指令“PUSH AX”后,SP=?

(2)再执行“PUSH AX”和”POP AX”后,(SP)=? (AX)=? (BX)=?

试画出堆栈变化示意图。

答:

(1)执行指令“PUSH AX”后,则将AX的内容推入堆栈,SP先减2((SP)=23FEH),以指示栈顶位置,AL的内容推入23FEH,而AH的内容推入23FFH

(2)再执行“PUSH AX”,SP先减2((SP)=23FCH),BL的内容推入23FCH,而BH的内容推入23FDH

(3)再执行“POP AX”,从SP指针指示的单元(23FCH)中弹出数据,存入AX中,SP加2((SP)=23FEH),指示栈顶位置。

故3条指令执行完毕,

(SP)=23FEH (AX)=3600H (BX)=3600H

7. 指出下面指令序列 的执行结果。

答:

(1)MOV 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,[ 2000H]

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,AL

MOV AL,80 ADC AL,AL (AL)=0A0H (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 BL,09 MUL BL AAM (AX)=0702H

(13)MOV BL,9

MOV AX,0702H AAD DIV BL

微机原理第3章 习题答案

第3章习题参考答案1分别指出下列指令中的源操作数和目的操作数的寻址方式。答:源操作数目的操作数(1)MOVAX,[SI]寄存器寻址寄存器间接寻址(2)MOVDI,100寄存器寻址立即寻址(3)MOV[BX
推荐度:
点击下载文档文档为doc格式
5w12k4nejk8njyy26yqz6tzp834d3b018rq
领取福利

微信扫码领取福利

微信扫码分享