1. 程式人生 > >彙編算術運算類指令集合

彙編算術運算類指令集合

加法

加1指令INC

  • INC OPD
  • 將目的運算元加1
  • (OPD)+1---->OPD

不帶進位的加指令ADD

  • ADD OPD,OPS
  • 將目的運算元與源運算元相加,將結果存入目的地址中,源地址的內容不變。
  • (OPD)+(OPS)---->OPD

帶進位加指令ADC

  • ADC OPD,OPS
  • 將目的運算元加源運算元再加低位進位,結果送目的地址。
  • (OPD)+(OPS)+CF---->OPD

減法

減1指令DEC

  • DEC OPD
  • 將目的運算元減1,結果送入目的地址。
  • (OPD)-1---->OPD

不帶借位的減指令SUB

  • SUB OPD,OPS
  • 目的運算元減源運算元,結果存於目的地址,源地址內容不變。
  • (OPD)-(OPS)---->OPD

帶借位減指令SBB

  • SBB OPD,OPS
  • 目的運算元減源運算元再減低位借位CF,結果送入目的地址。
  • (OPD)-(OPS)-CF---->OPD

求補指令NEG

  • NEG OPD
  • 將目的運算元的每一位求反(包括符號位)後加1,結果送目的地址(將零減去指定的8位或16位目的運算元,並將結果送回目的運算元單元)。
  • (OPD)(求反)+1---->OPD

比較指令CMP

  • CMP OPD,OPS
  • 目的運算元減源運算元,結果隻影響標誌位,不送入目的地址,即只進行(OPD)-(OPS)操作。

乘法

無符號數乘法指令MUL

  • MUL OPS
  • 若是位元組數相乘,(AL)與OPS相乘得到字資料存入AX中;若是字資料相乘,則(AX)與OPS相乘得到雙字資料,高字存入DX,低字存入AX中。其中,OPS為暫存器或儲存單元。
  • 位元組乘法:(AL)*(OPS)---->AX
  • 字乘法:(AX)*(OPS)---->DX,AX

有符號乘法指令IMUL

  • IMUL OPS
  • 位元組乘法功能指令為(AX)*(OPS)---->AX
  • 字乘法功能指令為(AX)*(OPS)---->DX,AX

除法

無符號除指令DIV

  • DIV OPS
  • 位元組除法功能指令為(AX)/(OPS)---->AL(商),AH(餘數)
  • 字除法功能指令為(DX、AX)/(OPS)---->AX(商),DX(餘數)
  • 其中OPS為暫存器或儲存單元

有符號數除指令IDIV

  • IDIV OPS
  • 位元組除法功能指令為(AX)/(OPS)---->AL(商),AH(餘數)
  • 字除法功能指令為(DX、AX)/(OPS)---->AX(商),DX(餘數)

符號擴充套件指令

位元組轉換成字指令CBW

  • CBW
  • 將AL中的符號位資料擴充套件至AH。若AL的最高位為1,則把FFH存入AH,否則把00H存入AH。
  • 在執行IMUL或IDIV指令之前,該指令可用於擴充套件AL的內容。

字轉換成雙字指令CWD

  • CWD
  • 將AX中的符號位資料擴充套件至DX。若AX最高位為1,則把FFFFH存入DX,否則把0000H存入DX.
  • 在執行IDIV指令之前用於擴充套件AX的內容。