如何在汇编语言中添加和乘以双字

时间:2016-12-15 21:06:27

标签: assembly

我有这个令人难以置信的项目,一直在弄乱我。我需要编写一个程序来从输入中获取2个数字,将它们相加或相乘。这个程序也应该能够得到双字。

我知道如何从输入中获取数字,如果它们的大小最多只是一个单词,如何添加或乘以它们,但我无法解决这个双字事物。

有没有人有代码?

提前感谢.....

2 个答案:

答案 0 :(得分:2)

我将假设分配目标是让您使用两倍于寄存器大小的数字,例如16位模式下的32位数字或32位模式下的64位数字。乘法可以类似于长手乘法。我假设您可以使用乘法指令,其中乘积是被乘数或乘数的两倍。这个例子显示了"单词"之间的空格。数字:

{{1}}

答案 1 :(得分:1)

在x86中:

MOV EBX,OP1
MOV EAX,OP2
IMUL EBX

结果在EDX中:EAX(32位寄存器) 高位32位存储在EDX寄存器中,低位32位存储在EAX寄存器中。

如果您需要更多解释,此链接应该会有所帮助: https://www.tutorialspoint.com/assembly_programming/assembly_arithmetic_instructions.htm