当前版本非最终版本。如有错误请指出,感谢。(修改了很多,请见谅。)
一. 单项选择题(答案填入上表,每题1分,共35分)
1.在下面四组寄存器中,第( )组都可用于对存储器间接寻址方式的寄存器。
A. AX,BX,CX,IP; B. BX,SP,DX,SI
C. IP,SP,BP,AX; D. BP,BX,SI,DI
寄存器间接寻址的操作数一定是在存储器中,而存储单元的有效地址 EA 则由寄存器保存,这些寄存器是基址寄存器BX、基址指针寄存器 BP、变址寄存器 SI 和 DI 之一或者他们的某种组合。
2.含有立即数的指令中,该立即数被存放在( )。
A. 累加器中 ; B. 指令操作码后的内存单元中
C. 指令操作码前的内存单元中; D. 由该立即数所指定的内存单元中
立即寻址是将立即数传送到目标寄存器或存储器中。操作数就在紧跟着指令代码的后续地址单元中。
3.寄存器间接寻址方式中,操作数在( )中。
A. 通用寄存器 B. 堆栈 C. 存储单元 D. 段寄存器
寄存器间接寻址的操作数一定是在存储器中。
4.下列指令中,有语法错误的指令是( )。
A. MOV AX,[1000H] ; B. ADD AX,1000H
C. MOV [1000H],AL ; D. MOV 1000H,AX
MOV指令源操作数可以是 8 / 16位寄存器、存储器中的某个字节 / 字或者是 8 / 16位立即数;目标操作数不允许为立即数,其他同源操作数,且两者不能同时为存储器操作数。
5.8086/8088中除( )两种寻址方式外,其它各种寻址方式的操作数均在存储器中。
A.立即寻址和直接寻址 B.寄存器寻址和直接寻址 C.立即寻址和寄存器寻址 D.立即寻址和间接寻址
1、立即寻址的操作数在指令代码的后续地址单元中(就在指令中)。
2、寄存器寻址的操作数在CPU的寄存器中。
3、直接寻址的操作数在存储器当中
4、间接寻址的操作数在存储器当中
6.指令( )的源操作数的寻址方式为直接寻址。
A. MOV [2000H],AL; B. IN AL,DX
C. XOR AL,[2000H]; D. MOV AX,2000H
例子:
立即寻址:MOV AL,12H
寄存器寻址:MOV BX,AX
直接寻址:MOV AX,[1234H]
间接寻址:MOV AX,[BX]
7.下列指令中,执行速度最快的指令是( )
A. ADD AX,10 ; B. ADD AL,[SI+10H]
C. PUSH AX ; D. ADD AX,[BX]
未知
8.下列指令中,不影响进位的指令是( )
A. ADD AX,BX B. MUL BL C. INC BX D.SUB AL,BH
A选项:加法指令(此处为寄存器加法)
指令功能:将源操作数与目标操作数相加,结果保留在目标中。显然影响进位。
B选项:无符号乘法指令
指令功能:完成两个无符号的 8 / 16 位二进制相乘的功能。显然影响进位。
对于 8 位二进制乘法,其 16 位的积的高 8 位存于AH,低 8 位存于AL
对于 16 位二进制乘法,其 32 位积的高 16 位存于DX,低 16 位存于AX。
C选项:增量指令
指令功能:将目标操作数当作无符号数,完成加 1 操作后,结果仍保留在目标中。INC指令只影响OF、SF、ZF、AF、PF 5 个标志,而不影响CF标志。
D选项:减法指令
指令功能将目标操作数减去源操作数,将其结果送回目标,并根据运算结果置标志位。
9.执行PUSH AX指令后,堆栈指针SP的内容: ( )
A.减1 ; B. 减2 ; C. 加1 ; D. 加2
PUSH s(字压入堆栈指令)
堆栈是按字操作的。
栈顶是堆栈地址较小的一段。
10.下面对PUSH指令描述正确的是( )。
A. PUSH只能将字节型数据压入堆栈。 B. PUSH只能将字型数据压入堆栈。
C. PUSH只能将双字节型数据压入堆栈。 D. PUSH可对任何类型数据操作。
PUSH s (字压入堆栈指令)
s 是 16 位的寄存器或存储器的俩相邻单元,以保证堆栈按字操作。
11.若CX=3,AX=1,执行完SHL AX,CL指令后,AX=( )。
A. 1 B. 2 C.4 D. 8
SHL(左移指令):
功能:将目的操作数顺序左移 1 位或者 CL 寄存器中指定的位数。
左移一位的时候,将操作数最高位移入进位标志 CF 最低位补零。
特点:SHL影响 CF 和 OF俩个标志位,移位一次且移位后符号位发生变化则 OF = 1,否则,OF = 0,移位多次 OF 无效。
12.8086中( )的源操作数和目的操作数可同时为存储器数。
A. 数据传送指令 B. 算术. 逻辑运算指令 C. 控制转移指令 D. 串操作指令
串操作类指令是唯一能在存储器内的源与目标之间进行操作的指令
13.下列指令中隐含使用寄存器SI的是( )
A HLT B. CMPSB C. XLAT D. NOT
HLT:一条暂停指令,它用于迫使 CPU 暂停执行程序,直到接收到复位或中断信号为止。
CMPS(串比较指令,这里是以字符为单位):
功能:将由 SI 作为指针的源串中的一个元素减去由 DI 作为指针的目标串中的相对应的一个元素,不回送结果,只根据结果改变标志位,并且相应的修改 SI 和 DI 内容指向下一个元素。
串操作指令均采用隐含寻址方式,源数据串一般在当前数据段中,即由DS段寄存器提供段地址,由 SI 源变址寄存器提供其偏移地址;目标串必须在附加段寄存器中,即由 ES 段寄存器提供段地址,由 DI 目标变址寄存器提供其偏移地址。
XLAT(字节翻译指令):
功能:通过查表得方式完成代码的转换。
NOT(按位取反操作):
功能:按位取反。
14.下列指令中,有语法错误的指令是( )。
A. MOV AX,[BX][SI] B. LEA DI,[2000H] C. OUT DX,AL D. SHL BX,2