我曾经应该编写一个简短的汇编代码,用于除以 2 的幂以外的数字。我的解决方案是在循环中减去除法器,循环数是实际结果。有什么更快的吗?解决这个问题的常用方法是什么?

最佳答案

重复减法是一种危险的低效除法方式。在最坏的情况下,N 位除法可以进行 O(2**N) 减法!!

@Johannes 的回答有一个链接,可以为您提供比这更好的算法。

如果我被要求在汇编程序中实现除法,我可能会广泛搜索现有的数字例程库。这是一种需要大量专业知识才能提出接近最佳代码的问题。

编辑 :回应 OP 的评论:



我建议您只使用除法,并将其留给 C++ 编译器来生成最有效的指令序列,以实现特定目标平台所需的结果。

关于assembly - split 有多快?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2221105/

10-11 15:30