微型计算机原理及应用习题集(2)

2019-06-02 15:06

10.在8086中,(BX)=0282H,且题中指令已在指令队列中,则执行 INC BYTE PTR(BX)指令需要的总线周期为( C )。

A. 0 B. 1 C.2 D. 3

三、多项选择题

1.下列指令中源操作数使用寄存器寻址方式的有(BF)。

A. MOV BX,BUF[SI] B. ADD [SI+50],BX C. SUB AX,2 D. CMP AX,DISP[DI] E. MUL VAR[BX] F. PUSH CX 2.将累加器AX的内容清零的正确指令是(BCD)。 A. CMP AX,AX B. SUB AX,AX C. AND AX,0 D. XOR AX,AX

3.正确将字变量WORD VARR偏移地址送寄存器AX的指令是(CD)。 A. MOV AX,WORD VARR B. LES AX,WORD VARR

C. LEA AX,WORD VARR D. MOV AX,OFFSET WORD VARR 4.调用CALL指令可有(ABDE)。

A. 段内直接 B. 段内间接 C. 短距离(SHORT) D. 段间直接 E. 段间间接

5.8086指令的操作数可能有(ABCD)。 A. 0 B. 1 C. 2 D. 3 四、填空题

1.与指令MOV BX,OFFSET BUF功能相同的指令是 LEA BX,BUF。

2.假设(BX)= 0449H,(BP)= 0200H,(SI)= 0046H,(SS)= 2F00H,(2F246H)= 7230H则执行XCHG BX,[BP+SI]指令后,(BX)= 7230H 。 3.执行下列指令序列后,完成的功能是将(DX,AX)的值除以16。

MOV

NEXT:

SHR

CX,4 DX,1

RCR AX,1 LOOP

NEXT

4.已知(AL)=0101 1101B,执行指令NEG AL后,再执行CBW后, (AX)= 0FFA3H 。

5.在数据传送类指令中,只有 SAHF 和 POPF 两条指令会影响标志位的值,其中指令 POPF 是唯一可以改变TF标志的指令。

6.设有100个字节数据(补码),存放在数据段中EA=2000H的存储单元中。以下程序应该从该数据区中找出最小的一个数据,并存入EA=2100H单元中,请将下面程序补充完整。

MIN:

MOV

BX, 2000H

AL,[BX] CX, 99 BX

MOV MOV

LOOP1:INC

6

CMP AL,[BX] JLE LOOP2 MOV

LOOP2:DEC

CX

JNZ LOOP1 MOV [2100H],AL

7.MOV AX,ES:[BX][SI]中,源操作数的物理地址计算式是: (ES)×16+(BX)+(SI)。 五、综合题

1.请指出以下各指令的源、目的操作数所使用的寻址方式。 (1)MOV SI,2100H(2)SBB (6)PUSH ES:[BP](7)CALL

DISP[BX],7(3)AND [DI],AX(4)OR DISP [DI]

AX,[609EH](5)MOV [BX+DI+30H],CX

AL,[BX]

答:(1)源操作数:立即数寻址;目的操作数:寄存器寻址(2)源操作数:立即数寻址;目的操作数:(带位移量的)基址寻址 (3)源操作数:寄存器寻址;目的操作数:变址寻址(4)源操作数:直接寻址; 目的操作数:寄存器寻址

(5)源操作数:寄存器寻址;目的操作数:(带位移量的)基址变址寻址(6)源操作数:带段超越的基址寻址;目的操作数:隐含寻址 (7)只有一个操作数,为(带位移量的)变址寻址 2.请指出下列各条指令的错误,并改正。

1)MOV [100],23H 2)ADD AX,[BX+BP+6] 3)PUSH

DL 4 )IN AX,[3FH] 5)OUT 3FFH,AL 6)LES SS,[SI] 7)POP [AX]

[BX],ES:AX 14)MOV AX,OFFSET [SI]

8)IMUL 4CH 9)SHL BX, 10)INT 300 11)XCHG DX,0FFFH 12)MOV AH,BX 13)MOV 15)MOV CS,AX 16)MOV DS,ES 17)MOV

DS,1000H

答:(1)不允许直接向段寄存器送立即数,可改为:MOV AX,1000H 或MOV DS,AX

(2)该指令在语法上是对的,即可以把一个立即数送入一个存储单元;但是如果考虑实际编译,则第一操作数前应加上BYTE PTR或WORD PTR说明,否则汇编程序会因不能确定操作数长度而指示出错。可改为:MOV ADD

BYTE PTR [100],23H(3)不能同时使用两个基址寄存器BX、BP进行间接寻址,可改为:

DX(5)在输入/输出指令中,8位端口地址应直接写

AX,[BX+DI+6](4)堆栈操作应以字为单位进行,而DL是一个字节。可改为:PUSH

在操作数处。可改为:IN AX,3FH(6)端口地址3FFH已超出8位二进制表示范围,16位端口地址应存于DX。可改为: MOV

DX,3FFH OUT

DX,AL(7)LES指令的目操作数应该是通用寄存器,不能是段寄存器。可改为:LES AX,[SI](8)AX不能用于间接寻

[BX](9)立即数不能做乘法指令的操作数,可改为:MOV BL,4CH

CL,5或SHL

BX,CL(11)操作数300 ? 255,已超出有效的中断类DX,CX

址,间接寻址只能用BX、BP、SI、DI四个寄存器之一。可改为:POP

或IMUL BL(10)当逻辑移位的次数大于1时,应该用CL指示次数。可改为:MOV

型码范围。(12)XCHG指令不允许立即数做它的操作数。可改为:MOV CX,0FFFH 或 XCHG

(13)源、目的字长不一致(14)在8086寻址方式中,AX不能作为基址寄存器使用,而且源、目的不能同时为存贮器寻址方式 (15)OFFSET只用于简单变量,应去掉(16)CS不能作为目的寄存器(17)段寄存器之间不能直接传送数据 3.设若标志寄存器原值为0A11H,(SP)=0060H,(AL)=4。下列几条指令执行后,标志寄存器、AX、SP的值分别是多少?

PUSHF LAHF XCHG PUSH

AH,AL AX

7

SAHF POPF

答:指令执行后标志寄存器的值为0411H,AX=0411H ,SP=005EH。 4.假如在程序的括号中分别填入指令: (1) LOOP L20(2) LOOPNE L20(3) LOOPE L20

试说明在三种情况下, 当程序执行完后, AX、BX、CX、DX四个寄存器的内容分别是什么?

BEGIN:

L20:

MOV

MOV MOV MOV INC ADD SHR

AX,01

BX,02 DX,03 CX,04 AX BX,AX DX,1

( )

答案: (1)(AX)= 5 (BX)= 16 (CX)= 0 (DX)= 0

(2)(AX)= 3 (BX)= 7 (CX)= 2 (DX)= 0 (3)(AX)= 2 (BX)= 4 (CX)= 3 (DX)= 1

5.变量N1和N2均为2字节的非压缩BCD数码,请写出计算N1与N2之差的指令序列。 答案:

MOV MOV SUB AAS MOV MOV SBB AAS MOV

DH, AL DL, AL AL, N1+1

AL, N2+1

AX, 0 AL, N1 AL, N2

6.在已学的指令中,可实现累加器清0的单条指令有哪些?比较它们的功能。

答:(1)MOV (2)SUB (3)AND (4)XOR

7.已知(DS)=2000H,有关的内存单元值为:(21000H)=00H,(21001H)=12H,(21200H)=00H,(21201H)=10H,(23200H)=20H,(23201H)=30H,(23400H)=40H,(23401H)=30H,(23600H)=60H,(23601H)=30H,符号COUNT的偏移地址为1200H。执行下列指令后,寄存器AX、BX、SI的值分别是多少?

MOV MOV

BX,OFFSET COUNT SI,[BX]

AX,0 ;仅将累加器清0,不会影响任何标志位

AX,AX;累加器清0的同时影响所有状态标志,具体地有:ZF、PF置1,CF、AF、SF、OF均清0 AX,0

;将累加器清0,ZF、PF置1,CF、OF、SF清0

AX,AX;将累加器清0,ZF、PF置1,CF、OF、SF清0

8

MOV AX,COUNT[SI][BX]

答:执行结果为(BX)=1200H,(SI)=1000H,(AX)=3040H。

8.设若内存单元DATA在数据段中偏移量为24C0H处,24C0H~24C3H单元中依次存放着55H、66H、77H、88H。下列几条指令执行后,寄存器AX、BX、CL、SI、DS的值分别是多少?

MOV LEA MOV LDS

AX,DATA SI,DATA CL,[SI] BX,DATA

答:执行结果为(AX)=6655H,(BX)=6655H,(CL)=55H,(SI)=24C0H,(DS)=8877H。

9.若(AX)=26D3H,(CX)=7908H,CF=1,执行下列指令后,寄存器AX、CX的值分别是多少?CF=?OF=? SAL RCR ROL

CH,1 AX,CL AL,1

答:执行结果为(AX)=0A64CH,(CX)=0F208H,CF=OF=0。

10.已知有程序段如下: MOV MOV AND AND MOV SHR MOV MUL ADD

AL,35H DL,AL DL,0FH AL,0F0H CL,4 AL,CL BL,10 BL AL,DL

执行之后,AL的值等于多少?该程序段完成了什么功能?

答:程序段执行后(AL)=23H。该程序段实现了将AL中的1个组合BCD码转换为十六进制数并存回AL中的功能。

11.下面的程序执行后,DX、AX的值分别是多少? ;以X为首址的字单元中的数据依次为1234H、5678H ;以Y为首址的字单元中的数据依次为8765H、4321H

LEA SI,X LEA DI,Y MOV DX,[SI+2]

9

MOV AX,X ADD AX,X ADC DX,[SI+2] CMP DX,[DI+2] JL

L2

CMP AX,Y JL

L1

JMP EXIT L1: MOV

JMP EXIT L2: MOV EXIT:……

答:执行结果为(AX)=2,(DX)=0ACF0H。

12.设VAR字单元的值为x,F1字单元的值为y,试编程按以下要求给y赋值:

y =

2 0 -2

x>30

AX,2 AX,1

30≥x≥1

x<1

答:一种可能的程序段实现如下:

MOV CMP JG CMP JL MOV JMP

PLUS2:MOV

JMP

F1,0 GO F1,2

;y=2 GO

AX,VAR ;AX ? x AX,30

PLUS2 ;x>30,则转PLUS2 AX,1 MIN2

;x<1,则转MIN2

;30≥x≥1,y=0

MIN2: MOV F1,-2 GO:……

;y = -2或00FEH ;后续处理

简析:本例中并未说明VAR字节单元是带符号数还是无符号数,读者在使用判断转移指令时可任意选用。若当作带符号数,应使用JG、JL、JGE、JLE等指令,如参考程序;若当作无符号数,则应使用JA、JB、JAE、JBE等指令。

10


微型计算机原理及应用习题集(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:民法试题(1)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: