我试图编写一个启动加载程序,我写的所有代码都是以实模式运行的。在所有示例中,我发现有xor ax, ax
或xor eax, eax
,我不明白这是做什么的。它似乎与设置段寄存器有关,但我不知道是什么。
答案 0 :(得分:2)
Xor指令是异或OR
查看专有OR真值表XOR
xor eax, eax ; Set eax to 0
mov eax, 0 ; Set eax to 0
我不是百分百肯定,但我认为由于某些历史原因而使用XOR。
答案 1 :(得分:0)
xor ax, ax
与mov ax, 0
的作用相同,但具有将标志设置为零并根据xor的逻辑清除进位的附加功能。并且xor
在一些旧架构中消耗的时钟少于mov
。
mov eax,eax
占用字节码中的5个字节,其中xor eax,eax
占用2个字节。