微机原理第4章练习题及答案

更新时间:2024-05-23 02:13:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第4章 80x86指令系统

一、自测练习题

㈠ 选择题 1.MOV AX,[BX+SI]的源操作数的物理地址是( )。 A.(DS)×16+(BX)+(SI) B. (ES)×16+(BX)+(SI) C.(SS)×10H+(BX)+(SI) D.(CS)×10H+(BX)+(SI)

2.MOV AX,[BP+Sl]的源操作数的物理地址是( )。 A.(DS)×10H+(BP)+(SI) A. (ES)×16+(BP)+(SI) C.(SS)×16+(BP)+(SI) D.(CS)×10H+(BP)+(SI)

3.MOV AX,ES:[BX+SI]的源操作数的物理地址是( )。 A.(DS)×16+(BX)+SI) B.(ES)×10H+(BX)+(SI) C.(SS)×10H+(BX)+SI) D.(CS)×16+(BX)+(SI)

4.JMP WORD PTR[DI]是( )。 A.段内间接转移 B.段间间接转移 C.段内直接转移 D.段间直接转移

5.JMP FAR PTR BlOCK(BLOCK是符号地址)是( )。 A.段内间接转移 B.段间间接转移 C..段内直接转移 D.段间直接转移 6.INC指令不影响( )标志。 A.OF B.CF C.SF D.ZF 7.条件转移指令JNE的测试条件是( )。 A.ZF=1 B.CF=0 C.ZF=0 D.CF=1 8.下列指令中,有语法错误的是( )。 A.MOV [SI],[DI] B.IN AL,DX C.JMP WORD PTR[BX+8] D.PUSH WORD PTR 20[BX+S1]

9.假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据21H的物理地址是( )。 A.20102H B.20101H C.200FEH D.200FFH 10.对于下列程序段: AGAIN:MOV AL,[SI] MOV ES:[DI],AL INC SI INC DI LOOP AGAIN

也可用指令( )完成同样的功能。 A.REP MOVSB B.REP LODSB C.REP STOSB D.REPE SCASB 11.对于下列程序段:

AGAIN:MOV ES:[DI],AL INC DI LOOP AGAIN 可用指令( )完成。

A.REP MOVSB B.LODSB C.REP STOSB D.REP SCASB 12.交换寄存器SI,DI的内容,正确的程序段是( )。 A.PUSH SI B.PUSH SI PUSH DI PUSH DI POP SI POP DI POP DI POP SI C.MOV AX,SI D.MOV AX,SI MOV SI,DI MOV BX,DI MOV DI,AX XCHG BX,AX

13.在ADD指令中,两个操作数的物理位置可以安排在( )中。 A.两个存储单元 B.一个存储单元和一个数据寄存器 C.两个数据寄存器 D.一个堆栈单元和一个数据寄存器 14.将字变量ARRAY的偏移地址送寄存器BX的正确结果是( )。 A.LEA BX,ARRAY B.MOV BX,ARRAY C.MOV BX,OFFSET ARRAY D.MOV BX,SEG ARRAY 15.将累加器AX的内容清零的正确指令是( )。 A.AND AX,0 B.XOR AX,AX C.SUB AX,AX D.CMP AX,AX 16.下列指令中,正确的是( )。 A.MOV [D1],[S1] B.MOV DS,SS C.MOV AL,[EAX+EBX*2] D.OUT BX,AX 17.实现将AL寄存器中的低4位置1的指令为( )。 A.AND AL,0FH B.OR AL,0FH C.TEST AL,0FH D.XOR AL,0FH 18.指令LOOPE Xl,( )。 A.当CX≠0或者ZF=0时转移到X1 B.当CX≠0或者ZF=1时转移到X1 C.当CX=0而且ZF=1时转移到X1 D.当CX≠0而且ZF=0时转移到X1 E.当CX≠0而且ZF=1时转移到X1 F.当CX=0而且ZF=0时转移到X1

19.80486在实地址方式下,内存管理中段基址、段首地址、偏移地址、物理 地址依次是( )。

A.16位,20位,16位,20位 B.均为16位 C.均为20位

D.20位,16位,20位,16位

20.80486在保护方式下,内存管理中段基址、段首地址、偏移地址、物理地 址依次是( )。

A.20位,32位,20位,32位 B.均为32位 C.均为20位

D.16位,32位,16位,32位

21.采用BCD码表示的十进制数计算时,先调整后运算的有( )。 A.加法 B.减法 C.乘法 D.除法 22.十进制调整指令AAA( )。 A.跟在SUB或SBB之后 B.跟在ADD之后 C.跟在MUL或ADC之后 D.跟在ADD或ADC之后

㈡ 填空题 1.计算机中的指令由__________和__________组成。. 2.指出下列指令源操作数的寻址方式: (1) MOV AX,BLOCK[SI] ;____________________ (2) MOV AX,[SI] ;____________________ (3) MOV AX,[6000H] ;____________________ (4) MOV AK,[BX+SI] ;____________________ (5) MOV AX,BX ;____________________ (6) MOV AX,1500H ;____________________ (7) MOV AX,80[BX+D] ;____________________ (8) MOV AX,[DI+60] ;____________________ 3.现有(DS)=2000H,(BX)=0100H,(Sl)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,(21202)=B7H,(21203)=65H,填入下列指令执行后AX寄存器的内容: (1) MOV AX,1200H ;AX=__________ (2) MOV AX,BX ;AX=__________ (3 )MOV AX,[1200] ;AX=__________ (4 )MOV AX,[BX] ;AX=__________ (5) MOV AX,1100H[BX] ;AX=__________ (6) MOV AX,[BX][SI] ;AX=__________ (7) MOV AX,1100H[BX][SI] ;AX=__________

4.对于指令XCHGBX,[BP+SI],如果指令执行前,(BX)=6F30H,(BF)=0200H,(SI)=0046H,(SS)=2F00H,(2F246H)=4154H,则执行指令后:(BX)=__________,(2F246H)=__________。

5.指令LOOPZ/LOOPE是结果_________或__________发生转移的指令;而指令LOOPNZ/LOOPNE则是结果__________或__________发生转移的指令。

6.XLAT指令规定BX寄存器中存放__________,AL寄存器中存放__________。 7.如果BUF为数据段中5400H单元的符号名,其中存放的内容为1234H,执行指令MOV BX,BUF后,DX的内容为__________;而执行LEABX,BUF后,BX的内容为__________。

8.串操作指令规定源串在__________段中,用__________来寻址源操作数;目的串在__________段中,用__________来寻址目的操作数。

9.近过程(NEAR)的RET指令把当前栈顶的一个字弹出到__________;远过程(FAR)的RET指令弹出一个字到__________后又弹出一个字到__________。

10.中断返回指令IRET执行后,从堆栈顺序弹出3个字分别送到__________,__________,__________。 11.设(SS)=0FFA0H,(SP)=00B0H,(AX)=8057H,(BX)=0F79H,执行指令PUSH AX后,(SP)=__________;若再执行指令:

PUSH BX POP AX

后,(SP)=__________,(AX)=__________,(BX)=__________。

12.阅读下面的程序。在__________的情况下,本段程序的执行结果是(AH)=0;在__________的情况下,其结果为(AH)=0FFH。 IN AL,20H TEST AL,80H JZ A MOV AH,0 JMP B

A:MOV AH,0FFH B:HLT

13.下列程序段是比较AX,BX,CX中带符号数的大小,将最大的数放在AX中。请将程序填充完整。 CMP AX,BX (1)__________NEXT XCHG AX,BX NEXT: (2)__________CX,AX JGE OUT (3)__________AX,CX OUT: ??

14.若(AX)=3F50H,(BX)=1728H,执行SUBAX,BX指令后,(AX)=__________,标志位AF,SF,CF,ZF,OF,PF的状态相应为__________。

15.设(SS)=2250H,(SP)=0140H,若在堆栈中存人5个数据,则栈顶的物理地址为__________,如果再从堆栈中取出3个数据,则栈顶的物理地址为__________。 16.MOV AL,‘A’指令的源操作数的寻址方式为__________。

17.若(BP)=1500H,(SI)=2500H,(DS)=2000H,(ES)=3000H,(SS)=4000H,假设按16位实模式操作,则指令MOVAL,[BP+SI+4200H),其源操作数的寻正方式为__________,访问内存的物理地址为__________。

18.MOV EAX,[BP+5000H]若按实模式操作,设(BP)=1500H,(DS)=2000H,(ES)=3000H,(SS)=4000H,则源操作数的物理地址为__________。 19.指出下列每条指令中源操作数的寻址方式: (1) MOV AX,[4000H] ;____________________ (2) MOV AL,[BX+DI] ;____________________ (3) MOV EAX,[BP+5000H] ;____________________ (4) MOV AL,[EBX*4+80H] ;____________________ 20.实地址方式的数据寻址方式有__________。

21.对于串操作指令,源串是以——内容为段基址,是以__________内容为偏移地址;目的串是以__________内容为段基址,以__________内容为 偏移地址。

22。将AX寄存器的内容清“0”的指令有__________。 23.以CX寄存器内容为计数对象的指令有__________。

24.CPU工作在实方式下,若指令MOV AL,[BP+SI],其源操作数的寻址方式为__________,假设(BP)=1500H,(SI)=2500H,(ES)=3000H,(SS)=4000H,则源操作数的

物理地址为__________。

25.输入/输出指令间接寻址必须通过__________寄存器。

㈢ 判断题

1.MOV AX,[BP+S1]的源操作数的物理地址为(DS)×16+(BP)+(S1)。 2.段内转移要改变IP,CS的值。

3.立即寻址方式不能用于目的操作数字段。 4.不能给段寄存器进行立即数方式赋值。

5.OF位用来表示带符号数的溢出,CF位可以表示无符号数的溢出。 6.SP的内容在任何时候都指向当前的栈顶,要指向堆栈的其他位置,可以使用BP指针。 7.REPE/REPZ是相等/为零时重复操作,其退出条件是:(CX)=0或ZF=1。 8.指令中都必须有操作数。

9.立即数可以直接送给寄存器、存储器或者段寄存器。 10.在串指令使用前,必须先将DF置0。

11.在用循环控制指令时,必须将循环次数送CX。

12.十进制调整指令是把累加器中十六进制数转换成十进制数。 13.加、减、乘、除运算指令都分带符号数和不带符号数运算指令。 14.基址变址寻址是在基址寄存器和变址寄存器中寻找操作数。

15.算术左移指令和逻辑左移指令在操作上是相同的,而算术右移指令和逻辑右移指令在操作上是不相同的。

16.在串操作中必须将串长度送CX。 17.请判断正误: (1) MOV AX,DX ; (2) IN AL,DX ; (3) MOV EBX,[BX+S1] ; (4) MOV [BX],[BP] ; (5) INC [EAX] ; (6) SUB AL,2030H ; (7) RCR AL ; (8) XCHG AL,80H ; (9) ADD EZX,[BX+10H] ; (10) IDIV BL ;

㈣ 问答题

1.指出下列算术逻辑指令执行后标志CF,ZF,SF,PF,OF和AF的状态。 MOV AL,80H DEC AL ADD AL,10H SUB AL,10H MOV AL,3AH AND AL,0FOH OR AL,0FOH XOR AL,0FOH

2.试指出下列指令中的错误:

本文来源:https://www.bwwdw.com/article/h7t7.html

Top