习题3-8086指令系统

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

习题三8086指令系统

主要内容:8086指令系统。主要介绍8086的基本数据类型、寻址方式和指令系统,重点掌握8086指令系统的寻址方式、堆栈操作指令、算术运算指令及其对标志位的影响,串操作指令,控制传送指令。

3.1 下面这些指令哪些是正确的?哪些是错误的?如是错误的,请说明原因。

XCHG CS,AX (⨯)

MOV [BX],[1000] (⨯)

PUSH CS (√)

POP CS (⨯)

IN BX,DX (⨯)

3.2 单选题:

(1)执行下面指令序列后,结果是( )。

MOV AL,82H

CBW

A、AX=0FF82H

B、AX=8082H

C、AX=0082H

D、AX=0F82H 【答】A

(2)与MOV BX,OFFSET VAR指令完全等效的指令是( )。

A、MOV BX,VAR

B、LDS BX,VAR

C、LES BX,VAR

D、LEA BX,VAR

【答】D

(3)编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有( )。

A、CMP

B、SUB

C、AND

D、MOV

【答】D

(4)下面指令执行后,改变AL寄存器内容的指令是( )。

A、TEST AL,02H

B、OR AL,AL

C、CMP AL,B

D、AND AL,BL

【答】D

(5)设DH=10H,执行NEG DH指令后,正确的结果是( )。

A、DH=10H CF=1

B、DH=0F0H CF=0

C、DH=10H CF=0

D、DH=0F0H CF=1

【答】D

(6)设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是( )。

A、85B92H

B、86192H

C、BB690H

D、12169H

【答】A

(7)检查BUF的内容是否为正偶数,如是正偶数,则0TAL。下面程序段正确的是( )。

A、MOV AL,BUF

JS K1

SHR AL,1

JNC K1

MOV AL,0

K1:……

B、MOV AL,BUF

AND AL,11

JNZ K2

MOV AL,0

K2:……

C、MOV AL,BUF

TEST AL,81H

JNZ K3

MOV AL,0

K3:……

D、MOV AL,BUF

JNP K4

TEST AL,80H

JNZ K4

MOV AL,0

K4:……

【答】C

(8)下列指令中,执行速度最快的是()。

A、MOV AX,100

B、MOV AX,[BX]

C、MOV AX,BX

D、MOV AX,[BX+BP]

【答】C

3.3 已知(DS)= 091DH,(SS)= IE4AH,(AX)= 1234H,(BX)= 0024H,(CX)= 5678H,(BP)= 0024H,(SI)= 0012H,(DI)= 0032H,[09226]= 00F6H,[09228]=1E40H,

[lE4F6]=091DH,试求单独执行下列指令后的结果?

(l)MOV CL ,20H [BX][SI];

【答】由于源操作数有效地址EA=20H+0024H+0012H=0056H,

其物理地址PA=DS*16+EA=091DH*16+56H=09226H, 因此(CL)= F6H

(2)MOV [BP][DI],CX;

【答】由于目的操作数有效地址EA= 0024H+0032H=0056H,

目的操作数物理地址PA= SS*16+EA=1E4A0H+0056H=1E4F6H, 因此[1E4F6]=5678H

(3)LEA BX ,20H[BX][SI]

MOV AX ,2[BX]

【答】第一条指令:源操作数物理地址PA=091D0H+(20+0024H+0012H)=09226H,因此(BX)=0056H 第二条指令:源操作数物理地址PA=091D0H+(2+0056)=09928H, 因此(AX)=1E40H

(4)LDS SI ,[BX][DI]

MOV [SI],BX

【答】第一条指令: 源操作数物理地址PA=091D0H+(0024H+0032H)=09226H

因此(SI)= 00F6H, (DS)=1E40H

第一条指令:目的操作数物理地址PA=1E400H+00F6H=1E4F6H

因此1E4F6H单元的内容为0024H, 即[1E4F6H]=0024H

(5)XCHG CX,32H[BX]

XCHG 20[BX][SI] ,AX

【答】同理可得:(CX)= 00F6H(AX)= 00F6H,[ 09226H]= 1234H

3.4 8086 CPU执行如下指令后

MOV AL,01100100B

SUB AL,58H ;(AL)=0CH,AF=1,CF=0

DAS ;(AL)=06 ,AF=1,CF=0

【答】首先用TD调试验证上面的结果;自己定义两个数据,重新验证,写出结果。

3.5 设(IP)= 3D8F H,(CS)= 4050H,(SP)= 0F17C H,当执行CALL 2000:0094H后,试求出IP、CS、

SP、[SP]、[SP+1][SP+2]和[SP+3]的内容?

【答】(IP)=0094H ,( CS)=2000H ,(SP)=F178H

[SP]=8FH , [SP+1]=3DH , [SP+2]=50H, [SP+3]=40H, [SP+3]=40H

3.6 设(DS)= 2000H,(BX)= 1256H,(SI)= 528FH,TABLE的偏移量= 20A1H,[232F7H]=3280H,[ 264E5H]

= 2450H,执行下述指令

(1)JMP BX ;IP= 1256H

(2)JMP TABLE[BX];IP= 3280H

(3)JMP [BX][SI] ;IP= 2450H

3.7 分别用一条语句实现下述指明的功能

(1)栈顶内容弹出送字变量DI。(POP DI )

(2)双字变量AYD存放的地址指针送ES和SI。(LES SI ,AYD )

(3)不允许中断即关中断。(CLI )

(4)子程序返回调用程序。(RET)

(5)AX的内容加1,要求不影响CF。(INC AX)

(6)BX的内容加1,要求影响所有标志位。(ADD BX, 1)

(7)若操作结果为零转向标号GOON。(JZ GOON )

3.8 8086/8088用什么途径来更新CS和IP的值?

【答】执行CALL、JMP、INT指令,可以改变CS和IP中的值,即改变程序走向。

3.9 字节扩展指令和字扩展指令用在什么场合?举例说明。

【答】需要对带符号数字节扩展为字时,要预先执行CBW指令。需要对带符号数字扩展为双字时,要预先执行CWD。

【答】例:求-503/267=?,将商存1000H单元.

MOV AX,-503

MOV BX,267

CWD

IDIV

MOV [1000H],AX

HLT

3.10 设DS=2100H,SS=5200H,BX=1400H,BP=6200H,说明下面两条指令所进行的具体操作:

MOV WORD PTR [BP], 2000

MOV WORD PTR [BX], 2000

3.11 以下是格雷码的编码表

0——0000 ,1——0001 ,2——0011,3——0010,4——0110

5——0111 ,6——0101,7——0100,8——1100,9——1101

请用换码指令和其他指令设计一个程序段,实现格雷码往ASCII的转换。

【答】

相关文档
最新文档