微机第五章课后答案
- 格式: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)相同.