
必須背會
記住這幾個寄存器位置和名稱
1.進位標志CF(Cary Flag):如果運算結果的最高位產生一個進位或借位,那么其值位1,否則位0
MOV AL, 0xFF ADD AL,1
2.奇偶標志(Parity Flag):奇偶標志PF用于反映運算結果“1”的個數(shù)的奇偶性。如果"1"的個數(shù)位偶數(shù),則PF的值為1,否則值位0
MOV AL,3
ADD AL,3
ADD AL,2
3.輔助僅為標志AF(Auxiliary Carry Flag)在發(fā)生下列情況時,輔助進位標志AF的值位1.否則其值位0
- 1,在字操作時,發(fā)生低字節(jié)向高字節(jié)進位或借位
- 2,在字操作時,發(fā)生低4位字節(jié)向高4節(jié)進位或借位時
MOV EAX,0x55EEFFFF
ADD EAX, 2
MOV AX ,5FEF
ADD AX, 2
MOV AL,4E
ADD AL,2
4. 零標志ZF(Zero Flag):零標志ZF用來反映計算結果是否位0 ,如果運算結果位0,在判斷結果是否為0時,可使用此標志位。
XOR EAX,EAX
MOV EAX,2
SUB EAX,2
5. 符號標志位(Sign Flag):符號標志位SF用來反映運算結構的符號位,他與運算結果的最高位相同。
MOV AL,7F
ADD AL,2
6.溢出標志位OF(Overflow Flag):溢出標志用于反映有符號數(shù)加減運算所得結果是否溢出。如果運算結果超過當前運算位所能表示的范圍,則成為溢出,OF的值被置為1,否則OF的值被清為0
有無符號

8位取值范圍球
1.無符號,有符號都不溢出
MOV AL, 8
ADD AL, 8
2.無符號溢出,有符號不溢出
MOV AL ,0FF
ADD AL , 2
3.無符號不溢出。有符號溢出
mov al,7F
add al,2
4.無符號.有符號有溢出
MOV AL,0FE
ADD AL,80
剩余指令
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 /IMM 兩邊不能同時為內存 寬度要一樣
SBB AL,CL
SBB BYTE PTR DS:[12ffc4],2
SBB BYTE PTR DS:[12ffc4],AL
XCHG指令:交換數(shù)據(jù)
格式: XCHG R/M,R/M 兩邊不 能同時為內存,寬度要一樣
MOVS指令:移動數(shù)據(jù) 內存-內存
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
STOS指令 將AL/AX/EAX的值存儲到[EDI] 指定的內存單元
STOS BYTE PTR ES:[EDI] 簡寫:STOSB
STOS WORD PTR ES:[EDI] 簡寫:STOSW
STOS D WORD PTR ES:[EDI] 簡寫:STOSD
REP指令: 按計數(shù)寄存器(ECX) 中指定的次數(shù)重復執(zhí)行字符串指令
MOV ECX, 10
REP MOVSD
REP STOSD