我可以在汇编语言中使用注册变量作为乘数吗?



我想在我的程序中使用一个变量作为乘数,下面是其中一个变量,我不确定它是否声明正确

chickenPrice db 19

声明鸡肉的价格是19美元。此外,我还了解到AX:DX是16位寄存器

我想把用户输入作为乘数,但我不确定mul ax, chickenPrice是否是正确的方法。

我想知道是否有一种方法可以用3位数来表示答案?我有多个变量,变量相乘的和可能需要我用3位数来显示。

chickenPrice db 19

chickenPrice的声明是好的。

然而,在上面的声明中,由于几个原因,使用mul ax, chickenPrice是错误的。

mul指令只有一个操作数。这条指令隐含地使用了累加器AX(或AL)。我们不需要明确地提到它。

我们必须意识到mul指令可以在2个不同的尺寸上操作。要么将AL中的字节与任意字节大小的操作数相乘,要么将AX中的字与任意字大小的操作数相乘。选择是您的,但是由于您将chickenPrice定义为一个字节,因此字节大小的乘法将是正确的。

mov al, ...       <-- Here the number gotten from user input
mul chickenPrice

两个数的乘积现在在AX寄存器

用DOS显示数字详细说明了如何显示多位数。在答案的Method 2段落中查找代码片段。

最新更新