简介:
微机原理与接口技术课后习题答案。如
第3章    8086/8088指令系统与寻址方式习题
3. 3  8086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H,
BP=0100H,VAR的偏移量为0600H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,计算它们的物理地址。
(1)MOV    BX,12         ;目标操作数为寄存器寻址
(2)MOV    [BX],12        ;目标操作数为寄存器间址  PA=10300H
(3)MOV    ES:[SI],AX    ;目标操作数为寄存器间址  PA=20200H
(4)MOV    VAR,8         ;目标操作数为存储器直接寻址  PA=10600H
(5)MOV    [BX][SI],AX    ;目标操作数为基址加变址寻址  PA=10500H
(6)MOV    6[BP][SI],AL    ;目标操作数为相对的基址加变址寻址  PA=12306H
(7)MOV    [1000H],DX     ;目标操作数为存储器直接寻址  PA=11000H
(8)MOV    6[BX],CX       ;目标操作数为寄存器相对寻址  PA=10306H 
(9)MOV    VAR+5,AX      ;目标操作数为存储器直接寻址  PA=10605H
 
3.4  下面这些指令中哪些是正确的?那些是错误的?如果是错误的,请说明原因。
(1)XCHG    CS,AX         ;错,CS不能参与交换
(2)MOV    [BX],[1000]      ;错,存储器之不能交换
(3)XCHG    BX,IP          ;错,IP不能参与交换
(4)PUSH    CS
(5)POP     CS               ;错,不能将数据弹到CS中
(6)IN      BX,DX          ;输入/输出只能通过AL/AX
(7)MOV    BYTE[BX],1000  ;1000大于255,不能装入字节单元
(8)MOV    CS,[1000]        ;CS不能作为目标寄存器
(9)MOV    BX,OFFSET VAR[SI]  ;OFFSET只能取变量的偏移地址
(10)MOV   AX,[SI][DI]      ;SI、DI不能成为基址加变址
(11)MOV  COUNT[BX][SI],ES:AX  ;AX是寄存器,不能加段前缀
 
3.7  设当前 SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行 PUSH  BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么?
当前栈顶的地址=2FF00H
当执行PUSH  BX  指令后,栈顶地址=2FEFEH
                           (2FEFEH)=57H
                           (2FEFFH)=34H
 
3.8  设DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。
(1) SHR    DX,1     ;DX=3C62H   CF=1
(2) SAR    DX,CL    ;DX=03C6H   CF=0
(3) SHL    DX,CL    ;DX=18A0H   CF=1
(4) ROR    DX,CL    ;DX=2BC6H   CF=0
(5) RCL    DX,CL    ;DX=18B7H   CF=1  
(6) RCR    DH,1     ;DX=BCC5H   CF=0;
 
3.9  设AX=0A69H,VALUE字变量中存放的内容为1927H,写出下列各条指令执行后寄存器和CF、ZF、OF、SF、PF的值。
                              AX    CF    ZF   OF   SF    PF
(1)XOR   AX,VALUE  ;      134EH   0     0    0    0     1
(2)AND   AX,VALUE  ;      0821H   0     0    0    0     1
(3)SUB   AX,VALUE  ;      F142H   1     0    0    1     1
(4)CMP   AX,VALUE  ;      0A69H   1     0    0    1     1
(5)NOT   AX         ;      F596H   X     X    X    X     X    
(6)TEST  AX,VALUE  ;      0A69H   0     0    0    0     1