首页
社区
课程
招聘
[求助]汇编的大数运算.
发表于: 2009-2-16 12:43 5707

[求助]汇编的大数运算.

2009-2-16 12:43
5707
例如这条指令,如何使他合法呢?

cmp  eax,88157EE55C4753893300F3AA6FBD0EAD115DC1661361BC43A9E11371EE848D99h

涉及到大数运算了吧..

期待答案.

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
就是在64位系统上也不会有这样的指令吧,第二个操作数是256位的,太长了
2009-2-16 12:54
0
雪    币: 8209
活跃值: (4458)
能力值: ( LV15,RANK:2459 )
在线值:
发帖
回帖
粉丝
3
别急,等256位机出来就支持了
2009-2-16 13:27
0
雪    币: 393
活跃值: (100)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
4
不用比了
直接jb吧
2009-2-16 13:34
0
雪    币: 2067
活跃值: (82)
能力值: ( LV9,RANK:180 )
在线值:
发帖
回帖
粉丝
5
刚刚算了一下
四舍五入之后是 EE848D99h
所以应是跟浮点数一样近似值即可
cmp eax, EE848D99h
2009-2-16 13:38
0
雪    币: 393
活跃值: (100)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
6
怎么算的
2009-2-16 13:57
0
雪    币: 251
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
我想楼主可以想一个变通的变法啊
用 C 语言写一个比较语句,然后反汇编一下,不就知道了吗?
2009-2-16 14:50
0
雪    币: 255
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
把88157EE55C4753893300F3AA6FBD0EAD115DC1661361BC43A9E11371EE848D99h

变成4个32bit数a,b,c,d,a与eax内容比较,
如果第一个就不同,下面就不用比了,
否则改变eax的内容,与b继续比下去

如此循环之
2009-2-16 17:21
0
雪    币: 207
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
那 mul 88157EE55C4753893300F3AA6FBD0EAD115DC1661361BC43A9E11371EE848D99h

大数乘法,这样的指令呢?? 如何计算和保存结果?
2009-2-16 21:32
0
雪    币: 207
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
这人知道..

可惜不正经的飘过了~~~
2009-2-16 21:33
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
牛年出牛题。
解决合法化的变通办法应该是使用内存区间存放大数,利用子程序进行大数比较,然后置相应标志位。
2009-2-16 23:55
0
雪    币: 247
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
大数乘法 转换成字符串 然后按照手工计算的方法 来写程序
2009-2-17 09:47
0
雪    币: 255
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
http://software.intel.com/sites/avx/
2009-2-17 13:21
0
游客
登录 | 注册 方可回帖
返回
//