< 2> 89 /r MOV r/m16,r16 2/2 Move word register to r/m word
< 3> 89 /r MOV r/m32,r32 2/2 Move dword register to r/m dword
< 4> 8A /r MOV r8,r/m8 2/4 Move r/m byte to byte register
< 5> 8B /r MOV r16,r/m16 2/4 Move r/m word to word register
< 6> 8B /r MOV r32,r/m32 2/4 Move r/m dword to dword register
< 7> 8C /r MOV r/m16,Sreg 2/2 Move segment register to r/m word
< 8> 8D /r MOV Sreg,r/m16 2/5,pm=18/19 Move r/m word to segment register
< 9> A0 MOV AL,moffs8 4 Move byte at (seg:offset) to AL
<10> A1 MOV AX,moffs16 4 Move word at (seg:offset) to AX
<11> A1 MOV EAX,moffs32 4 Move dword at (seg:offset) to EAX
<12> A2 MOV moffs8,AL 2 Move AL to (seg:offset)
<13> A3 MOV moffs16,AX 2 Move AX to (seg:offset)
<14> A3 MOV moffs32,EAX 2 Move EAX to (seg:offset)
---------------------------------------------------------------------------
NOTES:
moffs8, moffs16, and moffs32 all consist of a simple offset relative
to the segment base. The 8, 16, and 32 refer to the size of the data. The
address-size attribute of the instruction determines the size of the
offset, either 16 or 32 bits.
---------------------------------------------------------------------------
<15> B0 + rb ib MOV r8,imm8 2 Move immediate byte to register
<16> B8 + rw iw MOV r16,imm16 2 Move immediate word to register
<17> B8 + rd id MOV r32,imm32 2 Move immediate dword to register
<18> C6 /0 ib (*) MOV r/m8,imm8 2/2 Move immediate byte to r/m byte
<19> C7 /0 iw (*) MOV r/m16,imm16 2/2 Move immediate word to r/m word
<20> C7 /0 id (*) MOV r/m32,imm32 2/2 Move immediate dword to r/m dword
注:
标记了(*)的指令形式的Opcode相对于i386手册有改动, 具体情况见下文的描述.