ADC指令
- 帶進(jìn)位加法。
- 格式:
ADC R/M, R/M/IMM兩邊不能同時為內(nèi)存,寬度要一樣
ADC AL, CL
ADC BYTE PTR DS:[12FFC4], 2
ADC BYTE PTR DS:[12FFC4], AL
SBB指令
- 帶借位減法
- 格式:
SBB R/M, R/M/IMM兩邊不能同時為內(nèi)存,寬度要一樣
SBB AL, CL
SBB BYTE PTR DS:[12FFC4], 2
SBB BYTE PTR DS:[12FFC4], AL
XCHG指令
交換數(shù)據(jù)。
格式:XCHG R/M, R/M 兩邊不能同時為內(nèi)存,寬度要一樣
XCHG AL, CL
XCHG DWORD PTR DS:[12FFC4], EAX
XCHG BYTE PTR DS:[12FFC4], AL
MOVS指令
移動數(shù)據(jù) 內(nèi)存 - 內(nèi)存
BYTE/WORD/DWORD
MOVS BYTE PTR ES:[EDI], BYTE PTR DS:[ESI] 簡寫為:MOVSB
MOVS WORD PTR ES:[EDI], WORD PTR DS:[ESI] 簡寫為:MOVSW
MOVS DWORD PTR ES:[EDI], DWORD PTR DS:[ESI] 簡寫為:MOVSD
例子:
MOV EDI, 12FFD8
MOV ESI, 12FFD0
MOVS DWORD PTR ES:[EDI], DWORD PTR DS:[ESI] ;觀察EDI的值,,EDI和ESI各加DWORD
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]
修改標(biāo)志寄存器中D位的值,然后再執(zhí)行下面的指令:
MOV EDI, 12FFD8
MOV ESI, 12FFD0
MOVS DWORD PTR ES:[EDI], DWORD PTR DS:[ESI] ;觀察EDI的值
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]
標(biāo)志寄存器D位:方向標(biāo)志;
D為0:EDI和ESI加BYTE/WORD/DWORD
D為1:EDI和ESI減BYTE/WORD/DWORD
注意:MOVS很有可能是一個字符串的復(fù)制
STOS指令
將AL/AX/EAX的值存儲到 [EDI]指定的內(nèi)存單元。
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]
修改標(biāo)志寄存器D位的值,然后再執(zhí)行下面的指令:
MOV EAX, 12345678
MOV EDI, 12FFC4
STOS BYTE PTR ES:[EDI] ;觀察EDI的值
STOS WORD PTR ES:[EDI]
STOS DWORD PTR ES:[EDI]
注意:STOS也受D位的影響,和MOVS一樣,影響EDI寄存器增長方向。
REP指令
按計數(shù)寄存器(ECX)中指定的次數(shù)重復(fù)執(zhí)行字符串指令。
MOV ECX, 10
REP MOVSD
REP STOSD