【发布时间】:2013-12-28 05:53:47
【问题描述】:
我正在使用 DosBox 模拟器学习 x86 的汇编。我正在尝试执行乘法。我不明白它是如何工作的。当我编写以下代码时:
mov al, 3
mul 2
我得到一个错误。虽然,在我使用的参考文献中,它以乘法表示,它假设 AX 始终是占位符,因此,如果我写:
mul, 2
它将al 的值乘以 2。但它不适用于我。
当我尝试以下操作时:
mov al, 3
mul al,2
int 3
我在 ax 中得到结果 9。请参阅此图片以进行说明:
另一个问题:我可以直接使用内存位置进行乘法吗?示例:
mov si,100
mul [si],5
【问题讨论】:
-
mul al, 2似乎被 MS-DOS DEBUG 错误地接受并被视为您输入了mul al(将隐式字节操作数al乘以显式操作数al并存储在隐式目标 @ 987654331@).
标签: assembly x86 dos multiplication immediate-operand