微机原理及应用第2章习题及答案

  • 格式:doc
  • 大小:160.50 KB
  • 文档页数:7

下载文档原格式

  / 7
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CH02 8086/8088指令系统

习题与思考题

1.假定DS=2000H,ES=2100H,SS=1500H,SI=00A0H,BX=0100H,BP=0010H,数据变量VAL 的偏移地址为0050H,请指出下列指令源操作数是什么寻址方式源操作数在哪里如在存储器中请写出其物理地址是多少

(1)MOV AX,0ABH (2)MOV AX,[100H]

(3)MOV AX,VAL (4)MOV BX,[SI]

(5)MOV AL,VAL[BX] (6)MOV CL,[BX][SI]

(7)MOV VAL[SI],BX (8)MOV [BP][SI],100

解答:

(1)MOV AX,0ABH

寻址方式:立即寻址;源操作数在数据线上;物理地址:无

(2)MOV AX,[100H]

寻址方式:直接寻址;源操作数在存储器中;物理地址:DS*16+100H=2000H*16+100H=20100H

(3)MOV AX,VAL

寻址方式:直接寻址;源操作数在存储器中;物理地址:DS*16+VAL=2000H*16+0050H=20050H

(4)MOV BX,[SI]

寻址方式:寄存器间接寻址;源操作数在存储器中;物理地址:DS*16+SI=2000H*16+00A0H=200A0H

(5)MOV AL,VAL[BX]

寻址方式:变址寻址;源操作数在存储器中;物理地址:DS*16+VAL+BX=2000H*16+0050H+0100

=20150H

(6)MOV CL,[BX][SI]

寻址方式:基址加变址寻址;源操作数在存储器中;物理地址:DS*16+BX+SI=2000H*16+0100H+00A0H

=201A0H

(7)MOV VAL[SI],BX

寻址方式:寄存器寻址;源操作数在寄存器中;物理地址:无

(8)MOV [BP][SI],100

寻址方式:立即寻址;源操作数在;物理地址:无

2.设有关寄存器及存储单元的内容如下:

DS=2000H,BX=0100H,AX=1200H,SI=0002H,[20100H]=12H,[20101H]=34H,[20102H]=56H,[20103]=78H,[21200]=2AH,[21201H]=4CH,[21202H]=0B7H,[21203H]=65H。

试说明下列各条指令单独执行后相关寄存器或存储单元的内容。

(1)MOV AX,1800H (2)MOV AX,BX

(3)MOV BX,[1200H] (4)MOV DX,1100[BX]

(5)MOV [BX][SI],AL (6)MOV AX,1100[BX][SI]

3.假定BX=0E3H,变量VALUE=79H,确定下列指令执行后的结果(操作数均为无符号数。对3、6,写出相应标志位的状态)。

(1)ADD VALUE,BX (2)AND BX,VALUE

(3)CMP BX,VALUE (4)XOR BX,0FFH

(5)DEC BX (6)TEST BX,01H

4.已知SS=0FFA0H,SP=00B0H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令,试画出堆栈区和SP内容变化的过程示意图。(标出存储单元的地址)解答:

00ADH 00AEH 00AFH

0FFA0:00B0H

···

FFAACH FFAADH FFAAEH FFAAFH FFAB0H

···

00ACH X FFAABH 00ADH 00AEH 00AFH

0FFA0:00B0H

···

57H 80H FFAACH FFAADH FFAAEH FFAAFH FFAB0H

···

00ACH X FFAABH ①初始状态;SP =00B0H

②PUSH AX ;(AX =8057H )SP =00AEH

00ADH 00AEH 00AFH

0FFA0:00B0H

···

79H 0FH 57H 80H FFAACH FFAADH FFAAEH FFAAFH FFAB0H

···00ACH X FFAABH 00ADH 00AEH 00AFH

0FFA0:00B0H

···

57H 80H FFAACH FFAADH FFAAEH FFAAFH FFAB0H

···

00ACH X FFAABH ③PUSH BX ;(BX =0F79H )SP =00ACH ④POP BX ;SP =00AEH

堆栈段SS =0FFA0H 堆栈段SS =0FFA0H

堆栈段SS =0FFA0H 堆栈段SS =0FFA0H

5.已知程序段如下: MOV AX ,1234H MOV CL ,4 ROL AX ,CL DEC AX MOV CX ,4 MUL C X 试问:(1)每条指令执行后,AX 寄存器的内容是什么(2)每条指令执行后,CF ,SF 及ZF 的值分别是什么(3)程序运行结束时,AX 及DX 寄存器的值为多少

6.写出实现下列计算的指令序列。(假定X、Y、Z、W、R都为字变量)(1)Z=W+(Z+X)(2)Z=W-(X+6)-(R+9)

(3)Z=(W*X)/(R+6)(4)Z=((W-X)/5*Y)*2

7.假定DX=001B,CL=3,CF=1,试确定下列各条指令单独执行后DX的值。

(1)SHR DX,1 (2)SHL DL,1

(3)SAL D H,1 (4)SAR DX,CL

(5)ROR DX,CL (6)ROL DL,CL

(7)RCR DL,1 (8)RCLDX,CL