微机第五章课后答案

  • 格式:doc
  • 大小:32.50 KB
  • 文档页数:4

第五章作业

08电子信息工程1班

习题 2010-10-14

5.1 分别指出下列指令中的源操作数和目的操作数的寻址方式:

(1) MOV SI,200

(2) MOV CX,DATA[SI]

(3) ADD AX,[BX][DI]

(4) AND AX,BX

(5) MOV [SI],AX

(6) PUSHF

解:

(1) 源操作数为立即寻址,目的操作数为寄存器寻址。

(2) 源操作数为寄存器相对寻址,目的操作数为寄存器寻址。

(3) 源操作数为基址加变址寻址,目的操作数为寄存器寻址。

(4) 源操作数为寄存器寻址,目的操作数为寄存器寻址。

(5) 源操作数为寄存器寻址,目的操作数为寄存器间接寻址。

(6) 源操作数为寄存器寻址,目的操作数为寄存器间接寻址。

5.2 试述指令MOV AX,2010H和MOV AX,DS:[2010H]的区别。

解:前一条指令是立即寻址,即把立即数2000H传送至寄存器AX。后一条指令是直接寻址,是把数据(DS)段中的地址为2000H单元的内容传送至寄存器AX。

5.3 写出以下指令中内存操作数的所在地址。

(1) MOV AL,[BX+5]

(2) MOV [BP+5],AX

(3) INC BYTE PTR[SI+3] (4) MOV DL,ES∶[BX+DI]

(5) MOV BX,[BX+SI+2]

解:① 数据段BX+5单元。

② 堆栈段BP+5单元。

③数据段SI+3字节单元。

④ 附加段(ES段)BX+DI单元。

⑤ 堆栈段BP+SI+2单元。

5.4判断下列指令书写是否正确:

(1) MOV AL,BX(6) MOV BL,F5H

(2) MOV AL,CL(7) MOV DX,2000H

(3) INC [BX](8) POP CS

(4) MOV 5,AL(9) PUSH CS

(5) MOV [BX],[SI]

解:

(1) 不正确,AL与BX数据宽度不同。

(2) 正确。

(3) 不正确,因为不明确是增量字节还是字。

(4) 不正确,立即数不能作为目的操作数。

(5) 不正确,因为不明确要传送的是字节还是字。

(6) 正确。

(7) 正确。

(9) 不正确,CS不能作为:pop的操作数。

(8) 不正确,CS不能作为PUSH指令的操作数。

5.5 设堆栈指针SP的初值为2000H,AX=3000H,BX=5000H,试问:

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

(2) 再执行PUSH BX及POP AX后SP=?AX=?BX=?

解:

① SP= 1FFEH ② SP= 1FFEH, AX=5000H, BX= 5000H

5.6 要想完成把[2000H]送[1000H]中,用指令:

MOV [1000H],[2000H]是否正确?如果不正确,应

解:不正确。

正确方法是:

MOV AL, [2000H]

MOV [1000H], AL

5.7 假如想从100中减去AL中的内容,用SUB 100,AL是否正确?如果不正确,应用什么方法?

解:不正确。

正确的方法是:

MOV BL,100

SUB BL,AL

5.8 用两种方法写出从88H端口读入信息的指令。再用两种方法写出从42H口输出100H的指令。

解:

(1) IN AL, 88H

(2) MOV DX, 88H

IN AL , DX

(3) MOV AL, 100H

OUT 42H , AL

(4) MOV AL,100H

MOV DX,42H

OUT DX,AL

5.9 假如AL=20H,BL=10H,当执行CMP AL,BL后,问:

(1) 若AL,BL中内容是两个无符号数,比较结果如何?影响哪几个标志位?

(2) 若AL,BL中内容是两个有符号数,结果又如何?影响哪几个标志位? 解:(l)AL=2OH,BL=1OH,O=0,S=0,Z=0,A=0,P=0,C=0.

(2)因为两个都是符号正数,其结果与(l)相同.