NASM XOR签名(32位)

时间:2014-06-21 08:40:53

标签: nasm

我正在搜索NASM XOR操作的签名,但在手册中找不到它。 NASM的XOR操作的签名是什么?在进行XOR X, Y时,可以使用哪些寄存器组合/寻址模式?它仅限于某些寄存器吗?

1 个答案:

答案 0 :(得分:2)

由指令集(x86)定义,而不是由NASM定义。这些是XOR的有效形式(取自Intel's Software Developer's Manual):

Opcode           Instruction      Op/En  64-Bit Mode  Compat/Leg Mode  Description
34 ib            XOR AL, imm8     I      Valid        Valid            AL XOR imm8.
35 iw            XOR AX, imm16    I      Valid        Valid            AX XOR imm16.
35 id            XOR EAX, imm32   I      Valid        Valid            EAX XOR imm32.
REX.W + 35 id    XOR RAX, imm32   I      Valid        N.E.             RAX XOR imm32 (sign-extended).
80 /6 ib         XOR r/m8, imm8   MI     Valid        Valid            r/m8 XOR imm8.
REX + 80 /6 ib   XOR r/m8*, imm8  MI     Valid        N.E.             r/m8 XOR imm8.
81 /6 iw         XOR r/m16, imm16 MI     Valid        Valid            r/m16 XOR imm16.
81 /6 id         XOR r/m32, imm32 MI     Valid        Valid            r/m32 XOR imm32.
REX.W + 81 /6 id XOR r/m64, imm32 MI     Valid        N.E.             r/m64 XOR imm32 (sign-extended).
83 /6 ib         XOR r/m16, imm8  MI     Valid        Valid            r/m16 XOR imm8 (sign-extended).
83 /6 ib         XOR r/m32, imm8  MI     Valid        Valid            r/m32 XOR imm8 (sign-extended).
REX.W + 83 /6 ib XOR r/m64, imm8  MI     Valid        N.E.             r/m64 XOR imm8 (sign-extended).
30 /r            XOR r/m8, r8     MR     Valid        Valid            r/m8 XOR r8.
REX + 30 /r      XOR r/m8*, r8*   MR     Valid        N.E.             r/m8 XOR r8.
31 /r            XOR r/m16, r16   MR     Valid        Valid            r/m16 XOR r16.
31 /r            XOR r/m32, r32   MR     Valid        Valid            r/m32 XOR r32.
REX.W + 31 /r    XOR r/m64, r64   MR     Valid        N.E.             r/m64 XOR r64.
32 /r            XOR r8, r/m8     RM     Valid        Valid            r8 XOR r/m8.
REX + 32 /r      XOR r8*, r/m8*   RM     Valid        N.E.             r8 XOR r/m8.
33 /r            XOR r16, r/m16   RM     Valid        Valid            r16 XOR r/m16.
33 /r            XOR r32, r/m32   RM     Valid        Valid            r32 XOR r/m32.
REX.W + 33 /r    XOR r64, r/m64   RM     Valid        N.E.             r64 XOR r/m64.

imm表示即时,例如513(或标签)。 r/m表示寄存器或内存操作数(例如albhbyte [foo]都匹配r/m8