Algorithm 汇编8086:不使用MUL和IMUL的乘法a*b

Algorithm 汇编8086:不使用MUL和IMUL的乘法a*b,algorithm,assembly,multiplication,Algorithm,Assembly,Multiplication,有没有一种优化的方法可以在不知道a和b的值的情况下乘以a*b,并且不使用循环,在循环中我们对a*b进行加法? 谢谢您可以使用n位测试、移位和加法计算n位数字a和b的a*b。但这基本上就是MUL指令在硬件中所做的,所以你不会得到比这更快的结果。你可以通过使用n位测试、移位和加法来计算n位数字a和b的a*b。但这基本上就是MUL指令在硬件中所做的,因此您不会比这更快得到任何东西。为什么要这样做?你想达到什么目的?例如,我必须计算一个矩阵2x2的行列式。我需要的一般解决方案,所以我必须计算例如ae b

有没有一种优化的方法可以在不知道a和b的值的情况下乘以a*b,并且不使用循环,在循环中我们对a*b进行加法?
谢谢

您可以使用n位测试、移位和加法计算n位数字a和b的a*b。但这基本上就是MUL指令在硬件中所做的,所以你不会得到比这更快的结果。

你可以通过使用n位测试、移位和加法来计算n位数字a和b的a*b。但这基本上就是MUL指令在硬件中所做的,因此您不会比这更快得到任何东西。

为什么要这样做?你想达到什么目的?例如,我必须计算一个矩阵2x2的行列式。我需要的一般解决方案,所以我必须计算例如ae bd,但我需要的优化解决方案。我更喜欢使用ADDNo避免循环解决方案,而不是不知道
a
b
的值。(如果
a
b
的值为0或1,那么我们不能排除对这些特定情况进行优化的可能性。否则,没有,
MUL
操作已经优化。使用MUL指令。这就是它的用途。有没有一种不使用MUL指令的乘法方法?是的。有没有一种优化的方法?现在你为什么要这样做?你想实现什么?例如,我必须计算一个矩阵2x2的行列式。我需要一般解,所以我必须计算例如ae bd,但我需要优化解。我更喜欢使用ADDNo避免循环解,而不是不知道
a
b
的值。(如果
a
b
的值为0或1,那么我们不能排除对这些特定情况进行优化的可能性。否则,没有,
MUL
操作已经优化。使用MUL指令。这就是它的用途。有没有一种不使用MUL指令的乘法方法?是的。有没有一种优化的方法?不强调,使用移位和加法将明显慢于使用MUL。慢得多。强调,使用移位和加法将明显慢于使用MUL。慢得多。