汇编语言减法指令

本文详细介绍了汇编语言中的减法指令,包括SUB(减法)、SBB(带借位减法)、DEC(减量)、NEG(求补)和CMP(比较)。每个指令的格式、操作和对状态标志位的影响都进行了阐述,并提供了一个大小写字母转换程序的示例,展示了减法指令的实际应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

减法指令

减法运算主要包括SUB,SBB,DEC,NEG和CMP指令,除DEC不影响CF标志外,其他照定义影响全部状态标志位。

1.减法指令SUB

减法指令SUB (Subtract) 使目的操作数减去源操作数, 差的结果送到目的操作数。 格式如下:
SUB reg,imm/reg/mem;减法:reg=reg-imm/reg/mem
SUB mem,imm/reg;减法:mem=mem-imm/reg
像 ADD 指令一样, SUB 指令支持寄存器与立即数、 寄存器、 存储单元, 以及存储单元与立即数、 寄存器间的减法运算, 按照定义影响6个状态标志位。 例如:
mov eax,Oaaff7348h;EAX=AAFF7348H
sub al,27h;EAX=AAFF7321H,OF=0,SF=0,ZF=0,PF=1,CF=0
sub ax,3fffh;EAX=AAFF3322H,OF=O,SF=0,ZF=0,PF=1,CF=0
sub eax,0bb000000h;EAX=EFFF3322H,OF=0,SF=1,ZF=0,PF=1,CF=1

2.带借位减法指令 SBB

带借位减法指令SBB (Subtract with Borrow) 除完成SUB 减法运算外, 还要减去借位CF,结果送到目的操作数, 按照定义影响6个状态标志位。格式如下:
SBB reg,imm/reg/mem;减法:reg=reg-imm/reg/mem-CF
SBB mem,imm/reg;减法:mem=mem-imm/reg-CF
SBB指令主要用于与SUB指令相结合实现高精度数的减法。 多于32位数据的减法需要先将两个操作数的低32位相减 (用SUB指令), 然后再减高位部分, 并从高位减去借位 (需要用SBB指令)。

3 减量指令DEC

减量指令 DEC (Decrement) 对操作数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值