加法指令(Addition),使用助記符ADD,常用的加法指令包括不帶進位加法指令、帶進位加法指令、增量指令和十進制調整指令。
基本介紹
- 中文名:加法指令
- 外文名:Addition
- 從屬:算術運算類指令
- 分類:ADD、ADC、INC等
- 套用領域:計算機、單片機等
- 進制:二進制及十進制
簡介
加法指令add
- 一般格式:
add dst,src - 指令與指令代碼
指令 指令代碼
ADD A, Rn O0101rrr
ADD A, direct 00100101 direct
ADD A, @Ri O010011i
ADD A, #data 00100100 data - 功能:dst—dst+src,完成兩個運算元相加,結果送至目的運算元dst,源運算元不變。
- 對運算元的要求:兩個運算元不能同時為存儲器定址方式。
- 目的運算元:8位、16位或32位的暫存器、存儲器運算元。
- 源運算元:與目的運算元類型相同的暫存器、存儲器或立即數運算元。
如指令:
add al,90h - 源運算元的定址方式:有暫存器定址、直接定址、暫存器間接定址、立即定址。
- 對標誌位的影響
加法運算對程式狀態字暫存器PSW的各標誌位有一定的影響。
①如果位7有進位輸出,則CY =1,否則CY =0;
②如果位3有進位輸出,則AC =1,否則AC =0;
③溢出標誌位OV= C6①C7,如果位6有進位輸出而位7沒有或者位7有進位輸出而位6沒有,則OV =1,否則OV =0;
④P標誌位始終跟蹤累加器Acc內1的個數,如果A中有奇數個1,則P=l。
帶進位加法指令adc
- 一般格式:
adc dst,src - 指令與指令代碼
指令 指令代碼
ADDC A, Rn OOlllrrr
ADDC A, direct 00110101 direct
ADDC A, @Ri OOl1011i
ADDC A, #data 00110100 data - 功能:dst·-dst+src+CF
adc指令除完成add加法指令運算外,還要加進位標誌CF,其用法及對狀態標誌位的影響也與add指令一樣。adc指令主要用於與add指令相結合實現多位元組數相加。對運算元的要求也與add指令一樣。 - 對PSW的影響
如果位7有進位輸出,則進位標誌位CY為l,否則CY為0;如果位3有進位輸出,則標誌位AC =1,否則AC =0;如果位6有進位輸出而位7沒有或者位7有進位輸出而位6沒有,則溢出標誌位OV =1,否則OV =0。 - 定址方式
與ADD指令相同。
增量指令inc
- 一般格式:
指令與指令代碼
指令 指令代碼
INC A 00000100
INC Rn OOOOlrrr
INC direct 00000101 direct
INC@Ri OOOOOlli
INC DPTR 1010001 1 - 功能:oprd——oprdq-1
inc指令對運算元oprd加1(增量),它是一個單運算元指令。運算元可以是暫存器或存儲器。 - 例如:
inc cx ; 計數器cx內容加1
inc byte ptr [bx] ; 存儲單元的內容加1
inc ecx; 計數器ecx內容加1 - 由於增量指令主要用於對計數器和地址指針的調整,所以它不影響進位標誌CF,對其他狀態標誌位的影響與add、ado指令一樣。
- 對標誌位影響
若原來為OFFH,加1後將溢出為OOH,對Acc的操作可能影響P,但不影響任何標誌位。 - 定址方式
有直接定址、暫存定址、暫存器間接定址。
十進制調整指令
- 指令與指令代碼
指令 指令代碼
DA A 11010100 - 功能
若該指令的上一條指令是加法指令,加數和被加數為十進制BCD碼,相加結果不是十進制的BCD碼,則必須將結果調整為BCD碼,該指令自動選擇調整值OOH、06H、60H、66H,將結果調整為十進制BCD碼。