logo资料库

微型计算机原理第四章练习题(答案).doc

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
第 4 章 80x86 指令系统 一、自测练习题 ㈠ 选择题 1.MOV AX,[BX+SI]的源操作数的物理地址是( )。 A.(DS)×16+(BX)+(SI) C.(SS)×10H+(BX)+(SI) B. (ES)×16+(BX)+(SI) D.(CS)×10H+(BX)+(SI) 2.MOV AX,[BP+Sl]的源操作数的物理地址是( )。 A.(DS)×10H+(BP)+(SI) C.(SS)×16+(BP)+(SI) A. (ES)×16+(BP)+(SI) D.(CS)×10H+(BP)+(SI) 3.MOV AX,ES:[BX+SI]的源操作数的物理地址是( )。 A.(DS)×16+(BX)+SI) C.(SS)×10H+(BX)+SI) B.(ES)×10H+(BX)+(SI) D.(CS)×16+(BX)+(SI) 4.JMP WORD PTR[DI]是( )。 5.JMP FAR PTR BlOCK(BLOCK 是符号地址)是( B.段间间接转移 D.段间直接转移 )。 B.段间间接转移 D.段间直接转移 A.段内间接转移 C.段内直接转移 A.段内间接转移 C..段内直接转移 6.INC 指令不影响( )标志。 A.OF B.CF 7.条件转移指令 JNE 的测试条件是( A.ZF=1 B.CF=0 8.下列指令中,有语法错误的是( C.SF )。 C.ZF=0 )。 D.ZF D.CF=1 A.MOV [SI],[DI] C.JMP WORD PTR[BX+8] B.IN AL,DX D.PUSH WORD PTR 20[BX+S1] 9.假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令 PUSH AX 后,存放数据 21H 的物理地址是( A.20102H )。 B.20101H 10.对于下列程序段: AGAIN:MOV AL,[SI] MOV ES:[DI],AL INC SI INC DI LOOP AGAIN )完成同样的功能。 也可用指令( A.REP MOVSB C.REP STOSB 11.对于下列程序段: AGAIN:MOV ES:[DI],AL INC DI LOOP AGAIN 可用指令( )完成。 C.200FEH D.200FFH B.REP LODSB D.REPE SCASB
A.REP MOVSB C.REP STOSB B.LODSB D.REP SCASB 12.交换寄存器 SI,DI 的内容,正确的程序段是( )。 A.PUSH SI PUSH DI POP SI POP DI C.MOV AX,SI MOV SI,DI MOV DI,AX B.PUSH SI PUSH DI POP DI POP SI D.MOV AX,SI MOV BX,DI XCHG BX,AX 13.在 ADD 指令中,两个操作数的物理位置可以安排在( )中。 A.两个存储单元 C.两个数据寄存器 B.一个存储单元和一个数据寄存器 D.一个堆栈单元和一个数据寄存器 14.将字变量 ARRAY 的偏移地址送寄存器 BX 的正确结果是( )。 A.LEA BX,ARRAY C.MOV BX,OFFSET ARRAY D.MOV BX,SEG ARRAY B.MOV BX,ARRAY 15.将累加器 AX 的内容清零的正确指令是( )。 A.AND AX,0 C.SUB AX,AX B.XOR AX,AX D.CMP AX,AX 16.下列指令中,正确的是( )。 A.MOV [D1],[S1] C.MOV AL,[EAX+EBX*2] B.MOV DS,SS D.OUT BX,AX 17.实现将 AL 寄存器中的低 4 位置 1 的指令为( A.AND AL,0FH C.TEST AL,0FH 18.指令 LOOPE Xl,( )。 )。 B.OR AL,0FH D.XOR AL,0FH 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 之后 C.跟在 MUL 或 ADC 之后 B.跟在 ADD 之后 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 寄存器的内容: )MOV AX,[1200] )MOV AX,[BX] (1) MOV AX,1200H (2) MOV AX,BX (3 (4 (5) MOV AX,1100H[BX] (6) MOV AX,[BX][SI] (7) MOV AX,1100H[BX][SI] ;AX=__________ ;AX=__________ ;AX=__________ ;AX=__________ ;AX=__________ ;AX=__________ ;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.请判断正误: IN AX,DX ; AL,DX ; EBX,[BX+S1] ; [BX],[BP] ; [EAX] ; AL,2030H ; AL ; (1) MOV (2) (3) MOV (4) MOV (5) INC (6) SUB (7) RCR (8) XCHG AL,80H (9) ADD (10) IDIV BL ; EZX,[BX+10H] ; ; ㈣ 问答题 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.试指出下列指令中的错误:
INC [BX] (1) MOV [BX],[S1] (3) (5) XCHG AX,2000H (7) XCHG [BP],ES (9) MOV AX,DI+SI (2) MOV AH,DX (4) MOV DS,SS (6) MOV AX,[BX+DX] (8) ADD [BX],BX (10) AL,BX IN 3.什么叫串?串操作有那些基本的指令?在使用时它们的寻址方式有那些约定?串前 缀在什么情况下使用? 4.判断正误,错者指出错误并改正。 (1) MOV ES,DS (3) XCHG AL,66H (5) (7) SUB AL,2000H (9) CMP [BX],0 INC [EBX] (2) OUT BX,AX (4) MOV EAX,[ECX*4+80H] (6) MOV [BX],[D1] (8) (10) POP AL IDIV AX,BL 二、自测练习题参考答案 ㈠ 选择题 2.C 14.A,C 4.A 16.C 6.B 18.E 8.A 20.B 10.A 22.B,D 12.A,C ㈡ 填空题 1.操作码,操作数 3.(1)1200H,(2)0100H;(3)4C2AH;(4)3412H;(5)4C2AH;(6)7856H;(7)65B7H 5.为零;相等;不为零;不相等 7.1234H,5400H 9.IP;IP;CS 11.00AEH;00AEH;0F79H;0F79H 13.(1) JGE;(2) CMP;(3) XCHG 15.22636H;2263CH 17.相对基址变址寻址;47C00H 19.(1)直接寻址;(2)基址变址寻址;(3)相对变址寻址;(4)相对比例变址寻址 21.DS;Sl ES;DI 23.循环控制指令、串操作重复指令 25.DX ㈢ 判断题 2.错误 12.错误 4.正确 14.错误 6.正确 16.错误 8.错误 10.错误 ㈣ 问答题 1.MOV AL,80H DEC AL ADD AL,10H ;CF=0 ZF=0 SF=0 PF=0 OF=l AF=1 ;
SUB AL,10H MOV AL,3AH AND AL,0FOH OR AL,0FOH XOR AL,0FOH ;CF=0 ZF=0 SF=0 PF=0 OF=1 AF=0 ;CF=0 ZF=0 SF=0 PF=1 OF=0 ; ;CF=0 ZF=1 SF=0 PF=0 OF=0 2. (1) 错误。源操作数和目的操作数不允许同时为存储器操作数。 (3) 错误。操作数的数据类型不明确,应使用 PTR 伪指令来定义。 (5) 错误。交换指令中不能出现立即数。 (7) 错误。不能对段寄存器交换数据。 (9) 错误。源操作数寻址方式不对。 3.串是一组有序的连续存放的数据。串基本操作指令有串传送 MOVSB/MOVSW, 串比较 CMPSB/CMPSW,串扫描 SCASB/SCASW,串存储(写串)STOSB/STOSW,串 装入(读串)LODSB/LOSW 共 5 种。串前缀是在串操作过程中无须再作其他处理的情况下使 用。 4. (2) 错误。应改为:OUTDX,AX (4) 正确。 (6) 错误。两存储单元不能直接互相传送数据,可改为: MOVAL,[D1] MOV[BX],AL (8) 错误。IDIV 指令被除数隐含指定,应改为:IDIV BL (10)错误。堆栈操作不允许字节操作,应改为:POP AX
分享到:
收藏