汇编语言---算术运算指令

指令包括:add,adc,inc,sub,sbb,dec,cmp,neg,mul,imul,div,idiv,daa,das,aaa,aas,aam,aad,cbw,cwd

重点掌握:add,adc,inc,sub,sbb,dec,cmp

目录

1.加法指令add,adc,inc

示例

2.减法指令SUB,SBB,DEC

3.比较指令CMP

示例

4.其余指令


1.加法指令add,adc,inc

;使用格式
add reg,imm/reg/mem
add mem,imm/reg
;reg<-reg+reg/mem/imm mem<-mem+reg/imm
-----------------------
adc reg,imm/reg/mem
adc mem,imm/reg
;reg<-reg+imm/reg/mem+CF mem<-mem+imm/reg+CF
;adc指令将源与目的操作数相加,再加上CF标志,结果送到目的操作数,adc指令主要与add配合
----------------------
inc reg/mem
;reg/mem<-reg/mem+1

示例

mov ax,0123
add ax,ax    ;ax<-ax,ax
------------------
mov ax,4652h    ;ax=4652h
adc ax,0f0fh    ;ax=3742h,CF=1
mov dx,0234h    ;dx=0234h
adc dx,0f0f0h    ;dx=f325h,CF=0
-----------------
inc bx    ;bx<-bx+1

 注意:inc指令不影响位CF标志,按定义设置其他状态标志

2.减法指令SUB,SBB,DEC

;使用格式
sub reg,imm/reg/mem
sub mem,imm/reg
;reg<- reg-imm/reg/mem mem<-mem-imm/reg
---------------
sbb reg,imm/reg/mem
sbb mem,imm/reg
;reg<-(imm/reg/mem)-CF) mem<-mem-imm/reg-CF
---------------
dec reg/mem
;reg/mem<-reg/mem-1

 注意:DEC指令不影响进位CF标志,按定义设置其他状态标志

3.比较指令CMP

CMP指令将目的操作数减去源操作数,按照定义相应设置状态标志

;使用格式
CMP reg,imm/reg/mem
CMP mem,imm/reg
;reg-imm/reg/mem    mem-imm/reg

示例

cmp al,0064H   ;al-100
    jz below
    ;al==100,跳转到below执行
    sub al,0064H
    ;al!=100,    al<-al-100
    inc ah    ;ah<-ah+1
below: ...  

CMP指令执行的功能与SUN指令相同,但结果不回送目的操作数

4.其余指令

乘法指令:MUL,IMUL。MUL无符号乘法(字/字节),IMUL有符号乘法(字/字节)

被乘数被隐藏在al/ax中,结果溢出的数据被保存在ah/dx中

除法指令:div,idiv.div无符号除法(字/字节),idiv有符号除法(字/字节)

除数放在8/16位reg或内存单元中,被除数默认在ax/(dx-ax)中(16位)

结果:al放商,ax放余数;或者ax放商,dx放余数

求反指令:neg。以0减去操作数;

符号拓展指令:CBW,CWD;CBW字节转化为字;CWD,字转化为双字节;

将al/ax的数据扩展为字数据(前者扩展到ah中,后者扩展到dx中)

十进制调整指令:daa,das,aaa,aas,aam,aad

daa/das将加/减之后的结果调整为压缩bcd码

aaa/aas将加/减之后的结果调整为非压缩BCD码

aam/aad将乘/除之后的结果调整为非压缩bcd码

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

jjj34

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值