汇编算数指令

汇编算数指令

简述

  • 80×86的算数运算指令包括二进制运算和十进制运算指令。算数指令用来执行算数运算,它们中有双操作数指令,也有单操作数指令。
  • 如前所述,双操作数指令的两个操作数中除源操作数为立即数的情况外,必须有一个操作数在寄存器中。单操作数指令不允许使用立即数方式。算数指令的寻址方式均遵循这一原则。

加减

加法指令

  • ADD 加法

    • 格式:ADD DST,SRC
    • DST<–DST+SRC
  • ADC 带进位的加法

    • 格式:ADC DST,SRC
    • DST<–DST+SRC+CF
  • INC 加一

    • 格式:INC OPR
    • OPR<–OPR+1

减法指令

  • SUB 减法

    • 格式:SUB DST,SRC
    • DST<–DST-SRC
  • SBB 带借位的减法

    • 格式:SBB DST,SRC
    • DST<–DST-SRC-CF
  • DEC 减一

    • 格式:DEC OPR
    • OPR<–OPR-1
  • NEG 求补

    • 格式:NEG OPR
    • OPR<-(-OPR)
  • CMP 比较

    • 格式:CMP OPR1, OPR2
    • OPR1-OPR2
      • 类似SUB但不保存结果,只是根据结果设置标志位
      • CMP后往往跟着一条条件转移指令

乘法指令

  • MUL 无符号数乘法

    • 格式:MUL SRC
    • 字节操作:AX<-AL*SRC
    • 字操作:DX,AX<-AX*SRC
      • DX放高位字,AX放低位字
  • IMUL 带符号数乘法

    • 格式:IMUL SRC
    • 字节操作:AX<-AL*SRC
    • 字操作:DX,AX<-AX*SRC
      • DX放高位字,AX放低位字

除法指令

  • DIV 无符号数除法

    • 格式:DIV SRC
    • 字节操作:AL<-AX/SRC的商
    • 字节操作:AH<-AX/SRC的余数
    • 字操作:AX<-(DX,AX)/SRC的商
    • 字操作:DX<-(DX,AX)/SRC的余数
  • IDIV 无符号数除法

    • 格式:IDIV SRC
    • 字节操作:AL<-AX/SRC的商
    • 字节操作:AH<-AX/SRC的余数
    • 字操作:AX<-(DX,AX)/SRC的商
    • 字操作:DX<-(DX,AX)/SRC的余数

其他指令:指令手册

作者

TIANYUZHOU

发布于

2020-06-07

更新于

2021-02-17

许可协议

评论