找回密码
 欢迎注册
查看: 25536|回复: 29

[讨论] 问大家一个比较大小的问题

[复制链接]
发表于 2008-3-31 14:47:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
64位有符号数
A, B
如果A-B后
是否结果最高位是1代表A < B?
否则A >= B

无符号的我已经否定了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-3-31 14:56:52 | 显示全部楼层

两个数比较:

情况
无符号数
有符号数
指令
满足条件
指令
满足条件
A < BJCCF==1JLSF^OF==1 && ZF==0
A ≥ BJNCCF==0JNLSF^OF==0  ||  ZF==1
A ≤ BJNACF==1 || ZF==1JLGSF^OF==1  ||  ZF==1
A > BJACF==0 && ZF==0JGSF^OF==0 && ZF==0
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-3-31 15:08:03 | 显示全部楼层
64位
无法读取标志
只能根据结果判断
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-3-31 15:09:22 | 显示全部楼层
明白说吧
我想通过psubq
得到64+64位的进位
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-3-31 15:21:05 | 显示全部楼层
movd eax, 0x80000000
movd mm7, eax
psllq mm7, 32
paddq mm1, mm2
pxor mm1, mm7
pxor mm2, mm7
psubq mm2, mm1
pxor mm1, mm7
pandn mm2, mm7
psrlq mm2, 63
mm2=进位???
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-3-31 15:27:14 | 显示全部楼层
原帖由 无心人 于 2008-3-31 15:09 发表
明白说吧
我想通过psubq
得到64+64位的进位


你也不明说是SIMD,我还当是普通的ALU呢!
正纳闷:64位会“无法读取标志”?!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-3-31 15:31:35 | 显示全部楼层
有符号数
0x8000000000000000LL (最小的64位整数,负数) - 1=0x7FFFFFFFFFFFFFFFLL (最大的64位整数)
所以这里A-B的结果最高位为0,但是A<B.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-3-31 15:32:03 | 显示全部楼层

一直在思考这个问题啊
我觉的可以这么做
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-3-31 15:33:46 | 显示全部楼层
还有什么别的特例么?
是不是仅这一个特例?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-3-31 15:34:59 | 显示全部楼层
计算溢出就会有问题
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-3-29 01:27 , Processed in 0.048448 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表