题目
以下指令中与SUB AX,AX作用相同的是( )A. OR AX , AXB. AND AX , AXC. XOR AX , AXD. PUSH AX
以下指令中与SUB AX,AX作用相同的是( )
A. OR AX , AX
B. AND AX , AX
C. XOR AX , AX
D. PUSH AX
题目解答
答案
C. XOR AX , AX
解析
考查要点:本题主要考查对汇编语言中逻辑运算指令(OR、AND、XOR)和算术运算指令(SUB)功能的理解,以及它们对寄存器操作的影响。
解题核心思路:
- 明确原指令功能:
SUB AX, AX
的作用是将AX寄存器的值减去自身,结果必然是0,即清零AX。 - 逐一分析选项:通过对比每个选项的逻辑运算规则,判断其是否能达到清零AX的效果。
- 关键点:
- 逻辑运算指令的特性(如XOR的异或特性会导致相同数相消为0)。
- 指令对寄存器的副作用(如PUSH指令会修改堆栈指针,但不影响AX值)。
原指令分析
SUB AX, AX
等价于AX = AX - AX
,结果为0,清零AX寄存器。
选项分析
A. OR AX, AX
- 逻辑或运算:每一位的结果为
原位 | 源位
。 - 执行结果:AX的每一位与自身进行OR运算,结果与原值相同(
0|0=0
,1|1=1
)。 - 结论:不改变AX值,与原指令作用不同。
B. AND AX, AX
- 逻辑与运算:每一位的结果为
原位 & 源位
。 - 执行结果:AX的每一位与自身进行AND运算,结果与原值相同(
0&0=0
,1&1=1
)。 - 结论:不改变AX值,与原指令作用不同。
C. XOR AX, AX
- 逻辑异或运算:每一位的结果为
原位 ^ 源位
。 - 执行结果:AX的每一位与自身进行XOR运算,结果全为0(
0^0=0
,1^1=0
)。 - 结论:清零AX,与原指令作用相同。
D. PUSH AX
- 功能:将AX的值压入堆栈,同时修改堆栈指针(SP)。
- 对AX的影响:不改变AX的值。
- 结论:与原指令作用不同。