-
加法指令
鎖定
加法指令(Addition),使用助記符ADD,常用的加法指令包括不帶進位加法指令、帶進位加法指令、增量指令和十進制調整指令。
- 中文名
- 加法指令
- 外文名
- Addition
- 從 屬
- 算術運算類指令
- 分 類
- ADD、ADC、INC等
- 應用領域
- 計算機、單片機等
- 進 制
- 二進制及十進制
目錄
加法指令簡介
加法指令加法指令add
- 指令與指令代碼指令 指令代碼ADD A, Rn O0101rrrADD A, direct 00100101 directADD A, @Ri O010011iADD A, #data 00100100 data
- 功能:dst—dst+src,完成兩個操作數相加,結果送至目的操作數dst,源操作數不變。
- 對操作數的要求:兩個操作數不能同時為存儲器尋址方式。
- 目的操作數:8位、16位或32位的寄存器、存儲器操作數。
- 源操作數:與目的操作數類型相同的寄存器、存儲器或立即數操作數。如指令:add al,90h
- 源操作數的尋址方式:有寄存器尋址、直接尋址、寄存器間接尋址、立即尋址。
源操作數為立即數尋址,目的操作數為寄存器尋址。兩個數相加後結果存放在目的操作數。假設指令執行前(a1)一82h,指令執行後(a1)一12h(82h+90h的結果),加的結果影響標誌,使得進位標誌CF一1(最高位有進位);溢出標誌OF一1(結果的符號位變化了);零標誌ZF:0(結果不為o);符號標誌SF=0(結果的符號位為0);輔助進位標誌AF一0(低4位沒有進位);奇偶標誌PF=1(結果的“1”的個數為偶數)。
下面的指令都是正確的指令:
add bx,[3000hi ; bx寄存器與有效地址為3000h單元內容相加
add di,cx ;di寄存器與CX寄存器的內容相加
add dx,[bx十sij;dx寄存器與存儲單元內容相加
add[si],dx ; 存儲器操作數與寄存器dX相加
add eax,Eesi] ; 存儲器操作數與寄存器eax相加
這些指令的運行結果都對標誌CF、OF、PF、SF、ZF和AF產生影響。
加法指令帶進位加法指令adc
- 一般格式:adc dst,src
- 指令與指令代碼指令 指令代碼ADDC A, Rn OOlllrrrADDC A, direct 00110101 directADDC A, @Ri OOl1011iADDC A, #data 00110100 data
- 功能:dst·-dst+src+CFadc指令除完成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 00000100INC Rn OOOOlrrrINC direct 00000101 directINC@Ri OOOOOlliINC DPTR 1010001 1
- 功能:oprd——oprdq-1inc指令對操作數oprd加1(增量),它是一個單操作數指令。操作數可以是寄存器或存儲器。
- 例如:inc cx ; 計數器cx內容加1inc byte ptr [bx] ; 存儲單元的內容加1inc ecx ; 計數器ecx內容加1
- 由於增量指令主要用於對計數器和地址指針的調整,所以它不影響進位標誌CF,對其他狀態標誌位的影響與add、ado指令一樣。
- 對標誌位影響若原來為OFFH,加1後將溢出為OOH,對Acc的操作可能影響P,但不影響任何標誌位。
- 尋址方式有直接尋址、寄存尋址、寄存器間接尋址。
加法指令十進制調整指令
- 指令與指令代碼指令 指令代碼DA A 11010100
- 功能若該指令的上一條指令是加法指令,加數和被加數為十進制BCD碼,相加結果不是十進制的BCD碼,則必須將結果調整為BCD碼,該指令自動選擇調整值OOH、06H、60H、66H,將結果調整為十進制BCD碼。