找回密码
 欢迎注册
查看: 9273|回复: 1

[讨论] B计划之长减法最佳算法讨论

[复制链接]
发表于 2008-3-29 20:45:04 | 显示全部楼层 |阅读模式

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

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

×
有两个相同长度的双字串left, right, 长度len
现求两个双字串的减法结果result,所谓加法是双字串以低地址做起始表示的长二进制数字的算术加



---------------------------------------------------------------
暂时封闭,此函数极端相似于长加,等找到长加的最佳算法后,直接写最终代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2008-3-31 13:42:34 | 显示全部楼层
鉴于并没找到更快的加法
暂时把目前减法贴出来
DWORD longSub4(DWORD * result, DWORD * left, DWORD * right, DWORD len)
{
    __asm
  {
  mov eax, [left]
  mov edx, [right]
  mov ebx, [result]
  mov ecx, [len]
  pxor mm0, mm0
loop1:
  movd mm1, [eax]
  add eax, 4
  movd mm2, [edx]
  psubq mm1, mm2
  add edx, 4
  paddq mm0, mm1
  movd [ebx], mm0
  psraq mm0, 32
  add ebx, 4
  sub ecx, 1
  jne loop1
  movd eax, mm0
  emms
  }
}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-3-29 00:44 , Processed in 0.040263 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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