1、第三章习题集二 选择题(每小题1分,共15分)1. 逻辑地址1000:2000对应的物理地址为( B )。A、1200H B、12000H C、2100H D、21000H2. 下面哪个寄存器使用时的默认段寄存器为SS( C )。 A、AX B、BX C、SP D、SI3. 当使用BP寄存器作基址寻址时,若无指定段替换,则内定在( B )段内寻址。 A.程序 B.堆栈 C.数据 D.附加4 在下面四组寄存器中,第 D 组都可用于对存储器间接寻址方式的寄存器。A. AX,BX,CX,IP; B. BX,SP,DX,SIC. IP,SP,BP,AX D. BP,BX,SI,DI5. 含有立即数的指
2、令中,该立即数被存放在 A 。 A. 累加器中 B. 指令操作码后的内存单元中 C. 指令操作码前的内存单元中 D. 由该立即数所指定的内存单元中6. 用段基值及偏移量来指明内存单元地址的方式称为( C )。A、有效地址 B、物理地址 C、逻辑地址 D、相对地址7. 已知物理地址为0FFFF0H,且段内偏移量为0B800H,若对应的段基地址放在DS中,则DS=( B )。 A、0FFFFH B、0F47FH C、2032H D、0F000H8. 含有立即数的指令中,该立即数被存放在B 。 A. 累加器中 B. 指令操作码后的内存单元中 C. 指令操作码前的内存单元中 D. 由该立即数所指定的内
3、存单元中9 寄存器间接寻址方式中,操作数在C 中。A. 通用寄存器 B. 堆栈 C. 存储单元D. 段寄存器10. 下列指令中,有语法错误的指令是( B D)。A. MOV AX,1000H B. LEA AL,1000HC. MOV 1000H,AL D. MOV 1000H,AX11. 下列指令语法有错的是:C A. MOV AX,1000H B. MOV AX,BX C. MOV AX,1000H D. MOV AX,1000H 12. 8086/8088中除_C_两种寻址方式外,其它各种寻址方式的操作数均在存储器中。( ) A. 立即寻址和直接寻址 B. 寄存器寻址和直接寻址C. 立即
4、寻址和寄存器寻址 D. 立即寻址和间接寻址13 指令( C )的源操作数的寻址方式为直接寻址。A. MOV 2000H,AL B. IN AL,DXC. XOR AL,2000H D. MOV AX,2000H14. 下列指令中,执行速度最快的指令是(_A_)。A. ADD AX,10 B. ADD AL,SI+10HB. ADD AX,CX C. ADD AX,BX15. 下列指令中,不影响进位的指令是:( C )A. ADD AX,BX B. MUL BL C. INC BX D.SUB AL,BH 16. 执行PUSH AX指令后,堆栈指针SP的内容:BA.减1 B. 减2 C. 加1
5、D. 加2 17. 下面对PUSH指令描述正确的是( C )。 A. PUSH只能将字节型数据压入堆栈。 B. PUSH只能将字型数据压入堆栈。 C. PUSH只能将双字型数据压入堆栈。D. PUSH可对任何类型数据操作。18. 当对两个组合(压缩)BCD数(字节)相加后,应使用( B )调整。 A. AAA B. DAA C. AAS D. DAS19. 若CX=3,AX=1,执行完SHL AX,CL指令后,AX=( D )。 A. 1 B. 2 C.4 D. 820. 8086中( D )的源操作数和目的操作数可同时为存储器数。 A、数据传送指令 B、算术、逻辑运算指令 C、控制转移指令
6、D、串操作指令21. 下列指令中隐含使用寄存器SI的是:B A HLT B. CMPSB C. XLAT D. NOT 22 下列指令中,有语法错误的指令是(_D_)。A. MOV AX,BXSI B. LEA DI,2000HC. OUT DX,AL D. SHL BX,223. 将AL中带符号数乘10送AL,正确的程序段是( AB )。A. SAL AL,1 B. ADD AL,ALMOV BL,AL MOV BL,ALSAL AL,1 ADD AL,ALSAL AL,1 ADD AL,ALADD AL,BL ADD AL,BLC. MOV CL,4 D. ADD AL,ALMOV BL,
7、AL ADD AL,ALSAL AL,CL ADD AL,ALADD AL,BL ADD AL,AL ADD AL,AL24. 假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据21H的物理地址是( D )。A、20102H B、20101H C、200FEH D、200FFH25设(SS)=4000H,(SP)=1000H,(AL)=78H,(AH)=0FCH,(DX)=5609H。现要求把AL和DX中的内容压入堆栈,第 D 示图中堆栈内容是正确的。40000H SS40001H.40FFCH 09H SP40FFDH 56H40FFEH
8、 78H40FFFH 00H41000HD.40000H SS40001H.40FFCH 56H SP40FFDH 09H40FFEH 0FCH40FFFH 78H41000HC.40000H SS40001H.41000H 41001H 0FCH41002H 78H41003H 56H41004H 09H SPB.40000H SS40001H.40FFCH 09H SP40FFDH 56H40FFEH 78H40FFFH 0FCH41000HA.28 若要检查BX寄存器中的D12位是否为1,应该用D 指令。 A. OR BX,1000H B. TEST BX,1000H JNZ NO JN
9、Z YES C. XOR BX,1000H D. AND BX,1000H JZ YES JNZ YES29 用BP作基址变址寻址时,操作数所在的段是当前c 。 A. 数据段B. 代码段 C. 堆栈段 D. 附加段32. 设(AL)=-68,(BL)=86,执行SUB AL,BL指令后,正确的结果是c 。 A. CF=1 B. SF=1 C. OF=1 D. ZF=133 下列4条指令中,有几条指令需要使用DX寄存器( B )。MUL BX; DIV BL; IN AX,20H; OUT 20H,AL; A1条 B2条 C3条 D4条34 下列指令中,不影响标志寄存器的进位标志位的指令是( D
10、 )。 ASUB AX,BX BROR AL,1 CJNC Label DINT n 35 下列指令经汇编后,机器指令代码最长的是( D )。 AMOV AX,0 BSUB AX,AX CXOR AX,AX DMUL BX36 假设AX和BX寄存器中存放的是有符号整数,为了判断AX寄存器中的数据是否大于BX寄存器中的数据,应采用指令序列( D )。 ASUB AX,BX BSUB AX,BX JC label JNC label CCMP AX,BX DCMP AX,BXJA label JG label 39 循环指令LOOPNZ终止循环的条件是( B )。 A、CX=0,且ZF=0 B、C
11、X=0,或ZF=1 C、CX=10,且ZF=0 D、CX=10,或ZF=1 40 对寄存器AX的内容乘以4的正确指令序列是( B )。 A、SHR AX,1 SHR AX,1 B、SHL AX,1 SHL,AX,1 C、ROL AX,1 ROL AX,1 D、RCR AX,1 RCR AX,1 41 设DH=10H,执行NEG DH指令后,正确的结果是( B )。 A、DH=10H CF=1 B、DH=0F0H CF=0 C、DH=10H CF=0 D、DH=0F0H CF=1 42 下列传送指令中有语法错误的是( A )。 A、MOV CS,AX B、MOV DS,AX C、MOV SS,AX D、MOV ES,AX 43 下面指令执行后,改变AL寄存器内容的指令是( D )。 A、TEST AL,02H B、OR AL,AL C、CMP AL,BL D、AND AL,BL 46 MOV SP,3210H PUSH AX 执行上述指令序列后,SP寄存器的值是( B )。 A、3211H B、320EH C、320FH D、3212H A.先进先出 B.随机读写 C.只能读出不能写入 D.后进先出49. 堆栈的工作方式是(D )