首页
社区
课程
招聘
CMP指令
发表于: 2010-8-19 10:42 5365

CMP指令

2010-8-19 10:42
5365
比如CMP A,B
当ZF=1 是相等。
当CF=1 A>B

这么想对不对。这条指令 我很困惑啊。好心人帮帮我呗。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 2523
活跃值: (520)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
cmp指令参照sub指令
eflags是一样的
2010-8-19 12:44
0
雪    币: 145
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
3
分为有符号 和无符号,谁给我详细说下啊。最好有个例子。,
2010-8-19 15:42
0
雪    币: 58
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
比效指令 CMP(compare)

CMP OPRD1,OPRD2

指令功能:
对两数进行相减,进行比较

指令说明:
1. OPRD1为任意通用寄存器或存储器操作数
OPRD2为任意通用寄存器或存储器操作数,立即数也可用作源操作数OPRD2.

2. 对标志位的影响同SUB指令,完成的操作与SUB指令类似,唯一的区别是不将OPRD1-OPRD2的结果送回OPRD1,
而只是比较.因而不改变OPRD1和OPRD2的内容,该指令用于改变标志位

3. 示例: CMP AL,20
CMP DX,CX
CMP AX,DATA1[BX]
CMP BATE[DI],BX

4. 以CMP DX,CX为例,对标志位的影响如下:
(1) (DX)=(CX)时,则ZF=1; ZeroFlag = 1

(2) 两个无符号数比较:
若(DX)>=(CX)时,则CF=0,即无借位
例如 10 - 8 = 2 不用借位
1010B - 1000B = 10B

若(DX)<(CX)时,则CF=1

例如 8 - 10 = 14 需要借位
1000B - 1010B = 1110B [由于需要向高位借位,所以CF=1]

(3) 两个带符号数比较
对带符号数判断大小可通过溢出标志OF及符号标志SF共同判断
SF = 0/1,这个知道吧, 0表示位正数,1表示负数

当 OF=0,即无溢出时,
若SF=0,则(DX)>(CX)
7 - 4 = 3
0111B - 0100B = 0011B

若SF=1,则(DX)<(CX)
4 - 7 = -3
0100B -0111B = 1011B

当 OF=1,即有溢出时,
若SF=1,则(DX)>(CX)
-5 - (-7) = 2
1101B - 1111B = 1110B  

若SF=0,则(DX)<(CX)
-7 - (-5) = -2
1111B - 1101B = 0010B
2010-8-19 22:18
0
雪    币: 2
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
学习了新内容,谢谢!
2010-8-20 07:55
0
雪    币: 468
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
这个很容易
.
2010-8-20 09:39
0
雪    币: 149
活跃值: (101)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
7
我把答案簡化如下,方便閱讀和理解:

CMP A,B 實際上是去做A-B的運算,所以會影響到三個 Flag => ZF CF SF

分下列兩種情況:
1. A,B 為 unsigned integer (例如以短整數來說其範圍是 0 to 65,535)
   若A=B 則ZF=1 CF=0
   若A>B 則ZF=0 CF=0
   若A<B 則ZF=0 因為結果為負數,所以CF=1

2. A,B 為 signed integer (例如以短整數來說其範圍是 -32,768 to +32,767)
   若A=B 則ZF=1 CF=0 SF=0
   若A>B 則ZF=0 CF=SF
   若A<B 則ZF=0 CF<>SF

這樣看起來是不是容易閱讀些
2010-8-20 11:36
0
雪    币: 145
活跃值: (85)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
感谢各位同学 细心指导。
2010-8-25 09:06
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
学习了  谢谢各位的热心回复
2010-8-26 09:48
0
游客
登录 | 注册 方可回帖
返回
//