AA-64 architecture
one byte opcodes




note: Except for the following differences in PM64
the one byte opcodes remain unchanged from IA-32.

 
invalid one byte opcodes
 
opcode mnemonic
06h PUSH ES
07h POP ES
0Eh PUSH CS
16h PUSH SS
17h POP SS
1Eh PUSH DS
1Fh POP DS
27h DAA
2Fh DAS
37h AAA
3Fh AAS
60h PUSHA
61h POPA
62h BOUND Gv,Ma
82h group #1* Eb,Ib
9Ah CALL Ap
9Eh SAHF (if CPUID.AHF64=0)
9Fh LAHF (if CPUID.AHF64=0)
C4h LES Gz,Mp
C5h LDS Gz,Mp
CEh INTO
D4h AAM Ib
D5h AAD Ib
D6h SALC or SETALC
EAh JMP Ap
 
 
new one byte opcodes
 
opcode mnemonic
40..4Fh REX byte
63h MOVSXD Gv,Ed
90h NOP (32-bit: no zero-ext.)
98h CBW, CWDE, CDQE
99h CWD, CDQ, CQO
A0h MOV Al,Oq
A1h MOV rAX,Oq
A2h MOV Oq,AL
A3h MOV Oq,rAX
48h,B8h MOV RAX,Iq
48h,B9h MOV RCX,Iq
48h,BAh MOV RDX,Iq
48h,BBh MOV RBX,Iq
48h,BCh MOV RSP,Iq
48h,BDh MOV RBP,Iq
48h,BEh MOV RSI,Iq
48h,BFh MOV RDI,Iq
49h,B8h MOV R8,Iq
49h,B9h MOV R9,Iq
49h,BAh MOV R10,Iq
49h,BBh MOV R11,Iq
49h,BCh MOV R12,Iq
49h,BDh MOV R13,Iq
49h,BEh MOV R14,Iq
49h,BFh MOV R15,Iq



In PM64 the default operand size is 32 bits. However, the following instructions default to a 64 bit operand size.

 
implicit RSP references
 
opcode mnemonic
50..57h
58..5Fh
PUSH rAX..rDI (and r8..r15)
POP rAX..rDI (and r8..r15)
FFh /6
8Fh /0
PUSH Ev
POP Ev
6Ah PUSH Ib
68h PUSH Iz
9Ch
9Dh
PUSHF
POPF
C8h
C9h
ENTER Iw,Ib
LEAVE
 
 
near branches
 
opcode mnemonic
E3h JCXZ/JECXZ/JRCXZ Jb
E0h
E1h
E2h
LOOPNE/LOOPNZ Jb
LOOPE/LOOPZ Jb
LOOP Jb
70..7Fh Jcc Jb
EBh
E9h
FFh /4
JMP Jb
JMP Jz
JMP Ev
E8h
FFh /2
CALL Jz
CALL Ev
C3h
C2h
RET near
RET near Iw
EM64T processors don't support a 66h prefix.



main page