微机原理第四章习题答案
1.8086语言指令的寻址方式有哪几类?用哪一种寻址方式的指令执行速度最快?
答:数据操作数的寻址方式有七种,分别为:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,寄存器相对基址变址和相对基址变址寻址。其中寄存器寻址的指令执行速度最快。
?
2.若DS=6000H,SS=5000H,ES=4000H,SI=0100H,BX=0300H,BP=0400H,D=1200H,数据段中变量名NUM的偏移地址为0050H,试指出下列源操作数的寻址方式和物理地址是多少?
(1)MOV AX,[64H] ??? ???????答:寻址方式为直接寻址;PA=60064H
(2)MOV AX,NUM?????????????? 答:寻址方式为直接寻址; PA=60005H
(3)MOV AX,[SI]?????????????? 答:寻址方式为寄存器间接寻址;PA=60100H
(4)MOV AX,[BX]????????????? 答:寻址方式为寄存器间接寻址;PA=60300H
(5)MOV AX,[BP]???? ?????????答:寻址方式为寄存器间接寻址;PA=50400H
(6)MOV AL,[DI] ??????????????答:寻址方式为寄存器间接寻址;PA=61200H
(7)MOV AL,[BX+1110H]?????? 答:寻址方式为寄存器相对寻址;PA=61410H
(8)MOV AX,NUM[BX]?? ?????答:寻址方式为寄存器相对寻址;PA=60305H
(9)MOV AX,[BX+SI]????????? 答:寻址方式为基址变址寻址;PA=60400H
(10)MOV AX,NUM[BX][DI]? 答:寻址方式为相对基址变址寻址;PA=61505H
?
3.设BX=637DH,SI=2A9BH,位移量为C237H,试确定由这些寄存器和下列寻址方式产生的有效地址。
(1)直接寻址???????????????????? 答:有效地址为 EA=C237H
(2)用BX的寄存器间接寻址?????? 答:有效地址为 EA=637DH
(3)用BX的相对寄存器间接寻址?? 答:有效地址为 EA=125B4H
(4)基址加变址寻址?????????????? 答:有效地址为 EA=8E18H
(5)相对基址变址寻址???????????? 答:有效地址为 EA=1504FH
其中,(3)和(5)中产生进位,要把最高位1舍去。
?
4.指出下列指令是否正确,若不正确情说明原因。
(1) MOV? DS, 2010H??????????? ;立即数不能传送到DS
(2) PUSH? AL????????????????? ;栈操作,操作数类型必须为WORD类型?
? (3) MOV? DX,[SP]???????????? ;SP寄存器不能做间址寄存器?
? (4) IN? AL,0A00H???????????? ;I/O指令的直接寻址,地址只能为8位
(5) XCHG? CL,CH???? ????????;正确
(6) SHR? AX,3??????????????? ;移位超过一位时,应采用CL寄存器间址
? (7) AAA? CX?????????? ;非组合的BCD码加法调整AAA指令应为隐含操作数
? (8) ADD? [BP+DI]?????? ;加法指令ADD,缺少源操作数
(9) OUT? DX,CL?????? ;I/O指令操作数只能用AX、AL提供,端口地址可以是8位的
直接地址或用DX间址
(10)CBW? BH?????????? ;符号扩展指令为隐含操作数
(11)ADD? 03ECH?????????? ;加法指令应为双操作数指令,立即数不能做目的操作数
(12)MOV? BX, [SI+DI]???? ;源操作数形式错误,SI和DI不能同时做为间址寄存器
(13)MOV? DI, [AX]??????? ;AX不能做为间址寄存器
????? (14)OUT? 258H, BX????????? ;I/O指令格式错误,见(9)题的解释
?????? (15)SHL? AX, 3????????????? ;移位指令,位移位数大于1时,应用CL来指明??????
(16)MOV ?64H,AL ????? ;立即数不能做为目的操作数
(17)ADD ?AL,6600H ?????;源、目的操作数的类型不一致
(18)MOV[BX],[SI] ???? ;传送指令中,两个操作数不能同时为存储器操作数
(19)XCHG ?AX,8800H ;交换指令的操作数不能使用立即数
(20)MOV ?AX,[BX+DX]??? ;传送指令的源操作数,不能使用立即数
(21)L