【发布时间】:2016-01-18 10:51:30
【问题描述】:
所以我正在尝试为汇编语言(英特尔 x86,使用 NASM)制作 GCD 程序,但未能成功。我不断收到编译器错误的地方是尝试将两个寄存器相乘时。我将用户值存储在寄存器 ebx、ecx 和 edx 中。我想乘以所有 3
& 将 ebx 和 ecx 的乘积存入 ebx,然后将 ebx 和 edx 相乘,存入 ebx,并显示结果。我试图通过使用此代码来做到这一点
imul ebx, ebx, ecx
imul ebx, ebx, edx
这不是乘法寄存器的有效方法吗?
【问题讨论】:
-
如果看到我的整个程序会帮助有人帮助我,我非常乐意发布它!我暂时忽略了它,因为我认为这很可能是一个简单的问题,只会被我笨拙的丑陋代码复杂化。
-
糟糕,这些无效。
-
你的标题写着“两个寄存器”,你的内容“三个寄存器”是什么意思?我很久以前就编写了汇编程序,但是 IIRC CPU 根本无法同时使用三个寄存器。身体上。也许这就是您遇到错误的原因,您至少应该将其添加到问题中。
JMP BACKAND TRY AGAIN。 :)
标签: assembly x86 multiplication