MUL 运算符仅采用单操作数形式有什么原因吗?
IMUL 操作符可以有三种不同的形式(一个、两个或三个操作数),这样更方便。从技术角度来看,我看不出为什么 MUL 运算符不能采用两个/三个操作数形式的任何原因。

最佳答案

它与输出的字节码有关。在 80286 之前的世界中,操作码太多,因此英特尔工程师正在寻找解决问题的方法。一个解决方案是将指定操作(在本例中为乘法)的字节码部分扩展到对第一个操作数进行编码的字节码部分。这显然意味着在执行 MUL 操作码时只能支持一个操作数。因为乘法需要两个操作数,他们通过将第一个操作数始终是 eax 寄存器硬编码到处理器中来解决这个问题。后来的处理器支持多种长度的字节码,这使它们能够将更多数据编码到单个命令中。这使他们能够使 IMUL 操作码更有用。

今天有一个有趣的平行现象,即 IP 地址用完。

关于operators - NASM 中的 MUL 算子与 IMUL 算子,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3963037/

10-11 01:51