r :表示操作数:必须是寄存器
r/m :可以使寄存器或是内存单元
imm :表示立即数
MOV指令:
1、MOV r/m8,r8
MOV [0x34], AL
MOV BL, AL
2、MOV r/m16,r16
MOV [0x1234], BL
MOV AX, BX
3、MOV r/m32,r32
MOV [0x86531254], ECX
MOV EAX, ECX
4、MOV r8,r/m8
MOV BH, [0x65]
5、MOV r16,r/m16
MOV AX, [0x6546]
6、MOV r32,r/m32
MOV EAX, EBX
MOV EAX, [0x6A376833]
7、MOV r8, imm8
MOV BL, 66H
8、MOV r16, imm16
MOV CX, 6666H
9、MOV r32, imm32
MOV EDX, 11451419H

ADD指令
ADD AL, imm8
ADD AL, 66H
ADD AX, imm16
ADD AX, 1145H
ADD EAX, imm32
ADD EAX, 98765432H
ADD EAX, 0xF8765432
ADD r/m8, imm8
ADD BYTE [0x66], 77H
ADD AL, 77H
ADD r/m16,imm16
ADD WORD [0x1919], 6666H
ADD WORD [0x1919], 0x6666
ADD r/m32,imm32
ADD DWORD [0x55668899], 12346688H
ADD r/m16, imm8
ADD BYTE [0x6699], 54H
ADD WORD [0x6699], 54H
ADD r/m32, imm8
ADD EBX, 66H
ADD r/m8, r8
ADD BYTE [0xAF], AH
ADD r/m16, r16
ADD WORD [0xFCED], BX
ADD r/m32, r32
ADD [0xFFF666CA], EAX
ADD r8, r/m8
ADD AL, [0xAA]
ADD r16, r/m16
ADD CX, DX
ADD r32, r/m32
ADD EAX, ECX

SUB指令(使用0x,使用H会先按 8 位符号来省字节)
SUB AL, imm8
SUB AL, 33H
SUB AX, imm16
SUB AX, 1FDCH
SUB EAX, imm32
SUB EAX, 5568DFE7H
SUB EAX, 0xF568DFE7
SUB r/m8, imm8
SUB BYTE [0xFF], 77H
SUB r/m16,imm16
SUB WORD [0xF5A6], 49CAH
SUB r/m32,imm32
SUB DWORD [0xAD66CD45], 6BDDC564H
SUB r/m16, imm8
SUB AX, 7FH
SUB r/m32, imm8
SUB DWORD [0xFDA658C1], 0F4H
SUB r/m8, r8
SUB AL, 5DH
SUB r/m16, r16
SUB WORD [0xEDAC], 6568H
SUB r/m32, r32
SUB EDX, 66666666H
SUB r8, r/m8
SUB BH, [0x11]
SUB r16, r/m16
SUB CX, [0x1234]
SUB r32, r/m32
SUB EAX, [0xEADC6597]

AND指令
AND AL, imm8
AND AL, 15H
AND AX, imm16
AND AX, 654FH
AND EAX, imm32
AND EAX, 0xEACF58BD
AND r/m8, imm8
AND BYTE [0xCC], 0xC4
AND r/m16,imm16
AND WORD [0xEC56], 0xE5C3
AND r/m32,imm32
AND DWORD [0x6E5D1C3A], 5F1C3E6BH
AND DWORD [0x6E5D1C3A], 0x5F1C3E6B
AND r/m16, imm8
AND [0xED65], 44H
AND BYTE [0xED65], 44H
AND r/m32, imm8
AND [0xD5E3C1A4], FFH
AND BYTE [0xD5E3C1A4], 0xFF
AND WORD [0xD5E3C1A4], 0xFF
AND DWORD [0xD5E3C1A4], 0xFF
AND r/m8, r8
AND BYTE [0x66], 99H
AND r/m16, r16
AND WORD [0x7878], 8787H
AND r/m32, r32
AND DWORD [0x61615151], 0xADADCDCD
AND r8, r/m8
AND CH, [0x66]
AND r16, r/m16
AND AX, [0xED65]
AND r32, r/m32
AND EBX, [0x654FED3C]

OR指令:
OR AL, imm8
OR AL, 0xFF
OR AX, imm16
OR AX, 0xECBA
OR EAX, imm32
OR EAX, 0x64DC24AB
OR r/m8, imm8
OR BYTE [0xEE], 0x46
OR r/m16,imm16
OR WORD [0xE75C], 0x65A3
OR r/m32,imm32
OR DWORD [0x65FC34DA], 0xEE77FF88
OR r/m16, imm8
OR BYTE [0xE6C1], 0x12
OR WORD
OR r/m32, imm8
OR BYTE
OR WORD [0xEC65AB41], 0x77
OR DWORD
OR r/m8, r8
OR [0x66], AL
OR r/m16, r16
OR [0xAECD], BX
OR r/m32, r32
OR [0x65BB66AA], EDX
OR r8, r/m8
OR CH, [0x11]
OR r16, r/m16
OR AX, [0x9999]
OR r32, r/m32
OR EBX, [0xFEADB654]

XOR指令:
XOR AL, imm8
XOR AL, 0x78
XOR AX, imm16
XOR AX, 0x6678
XOR EAX, imm32
XOR EAX, 0x78786666
XOR r/m8, imm8
XOR BYTE [0xAA], 0xBB
XOR r/m16,imm16
XOR WORD [0x9876], 0x4563
XOR r/m32,imm32
XOR DWORD [0x85DF3CB1], 0xEEEEDCAB
XOR r/m16, imm8
XOR BYTE [0x98FC], 0x78
XOR WORD
XOR r/m32, imm8
XOR BYTE
XOR WORD [0xFAF78654], 0x66
XOR DWORD
XOR r/m8, r8
XOR [0x78], AL
XOR r/m16, r16
XOR [0x64AC], BX
XOR r/m32, r32
XOR [0xA12C35D4], ECX
XOR r8, r/m8
XOR AH, [0x78]
XOR r16, r/m16
XOR BX, [0x6666]
XOR r32, r/m32
XOR ECX, [0xFEDCBA98]

NOT指令:
NOT r/m8
NOT BYTE [0x78]
NOT r/m16
NOT BYTE [0x7878]
NOT WORD [0x7878]
NOT r/m32
NOT BYTE [0xFD87CA65]V
NOT WORD [0xFD87CA65]
NOT DWORD [0xFD87CA65]

其他指令
ADC指令:带进位加法
格式:ADC R/M,R/M/IMM 两边不能同时为内存 宽度要一样
ADC AL,CL
ADC BYTE PTR DS:[12FFC4],2
ADC BYTE PTR DS:[12FFC4],AL
SBB指令:带借位减法
格式:SBB R/M,R/M 两边不能同时为内存 宽度要一样
SBB AL,CL
SBB BYTE PTR DS:[12FFC4],2
SBB BYTE PTR DS:[12FFC4],AL
XCHG指令:交换数据
格式:XCHG R/M,R/M/IMM 两边不能同时为内存 宽度要一样
XCHG AL,CL
XCHG DWORD PTR DS:[12FFC4],EAX
XCHG BYTE PTR DS:[12FFC4],AL
MOVS指令:移动数据 内存-内存
BYTE/WORD/DWORD
MOVS BYTE PTR ES:[EDI],BYTE PTR DS:[ESI] 简写为:MOVSB
MOVS WORD PTR ES:[EDI],BYTE PTR DS:[ESI] 简写为:MOVSW
MOVS DWORD PTR ES:[EDI],BYTE PTR DS:[ESI] 简写为:MOVSD
例子:
MOV EDI,12FFD8
MOV ESI,12FFD0
MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
修改标志寄存器中D位的值,然后在执行下面的指令:
MOV EDI,12FFD8
MOV ESI,12FFD0
MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI]
STOS指令:讲Al/AX/EAX的值存储到[EDI]指定的内存单元
STOS BYTE PTR ES:[EDI] 简写为STOSB
STOS WORD PTR ES:[EDI] 简写为STOSW
STOS DWORD PTR ES:[EDI] 简写为STOSD
MOV EAX,12345678
MOV EDI,12FFC4
STOS BYTE PTR ES:[EDI] 观察EDI的值
STOS WORD PTR ES:[EDI]
STOS DWORD PTR ES:[EDI]
修改标志寄存器中D位的值,然后在执行下面的指令:
MOV EAX,12345678
MOV EDI,12FFC4
STOS BYTE PTR ES:[EDI] 观察EDI的值
STOS WORD PTR ES:[EDI]
STOS DWORD PTR ES:[EDI]
REP指令:按计数寄存器 (ECX) 中指定的次数重复执行字符串指令
MOV ECX,10
REP MOVSD
REP STOSD
