汇编基础--cmp汇编指令

本文详细介绍了cmp汇编指令的工作原理,通过示例解释了如何通过cmp指令比较数值并影响标志位,进而判断数值之间的大小关系。讨论了等于、小于、大于的情况,并给出相关练习帮助读者加深理解。
摘要由CSDN通过智能技术生成
转自http://blog.csdn.net/wfq_1985/article/details/6166002

cmp是比较指令,cmp的功能相当于减法指令。它不保存结果,只是影响相应的标志位。其他的指令通过识别这些被影响的标志位来得知比较结果。

cmp指令格式: cmp 操作对象1, 操作对象2

计算 操作对象1 - 操作对象2 但不保存结果,只是根据结果修改相应的标志位。

举例假如此时eax = 0h
那么cmp eax, eax (eax - eax = 0)

此时我们的指令执行后, ZF标志位 = 1, PF = 0, SF =0 , CF =0 , OF = 0 。

(因为我们结果为0,所以ZF标志位为1 . 前提是在PF操作数为0的情况下执行
ps:其实PF标志位无关紧要)


在继续举例

mov ebx, 05h
mov eax, 08h
cmp eax, ebx (eax - ebx = 03h)
此时我们的指令执行后(ZF = 0, PF = 1, SF = 0, CF = 0, OF = 0)

因为此时我们就可以通过标志位判断出eax 是否大于ebx。 我们有时候想问题,可以逆序的想。
可以这样想,如果它小于的话会发生什么。。 举例假如al = 05h, bl = 08h (为了更直观,所以我采用低8位寄存器)

mov al, 05h
mov bl, 08h
cmp al, bl (al - bl = -3h)
(注意:al是低8位寄存器,为了更直观,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值