我可以在汇编语言中使用注册变量作为被乘数吗?
Can I use a registered variable as multiplicand in assembly language?
我想在我的程序中使用一个变量作为被乘数,下面是其中一个变量,我不确定它是否声明正确
chickenPrice db 19
特此声明鸡肉的价格为$19。
另外,我了解到 AX:DX
它是 16 位寄存器
我想将用户输入作为乘数,但我不确定 mul ax, chickenPrice
是否是正确的方法。
我想知道有没有办法以3位数显示答案?我为此有多个变量,变量相乘的总和可能需要我以 3 位数显示。
chickenPrice db 19
chickenPrice的声明没问题。
但是对于上面的声明,使用 mul ax, chickenPrice
是错误的有几个原因。
mul
指令只占用1个操作数。此指令使用累加器 AX
(或 AL
)是隐含的。我们不需要明确提及它。
而且我们必须知道 mul
指令可以对 2 种不同的大小进行操作。我们要么将 AL
中的字节与任何字节大小的操作数相乘,要么将 AX
中的字与任何字大小的操作数相乘。选择权在您,但由于您将 chickenPrice 定义为一个字节,因此字节大小的乘法将是正确的。
mov al, ... <-- Here the number gotten from user input
mul chickenPrice
两个数字的乘积现在在 AX
寄存器中
Displaying numbers with DOS 详细解释了如何显示多位数。在答案的 方法 2 段落中查找代码片段。
我想在我的程序中使用一个变量作为被乘数,下面是其中一个变量,我不确定它是否声明正确
chickenPrice db 19
特此声明鸡肉的价格为$19。
另外,我了解到 AX:DX
它是 16 位寄存器
我想将用户输入作为乘数,但我不确定 mul ax, chickenPrice
是否是正确的方法。
我想知道有没有办法以3位数显示答案?我为此有多个变量,变量相乘的总和可能需要我以 3 位数显示。
chickenPrice db 19
chickenPrice的声明没问题。
但是对于上面的声明,使用 mul ax, chickenPrice
是错误的有几个原因。
mul
指令只占用1个操作数。此指令使用累加器 AX
(或 AL
)是隐含的。我们不需要明确提及它。
而且我们必须知道 mul
指令可以对 2 种不同的大小进行操作。我们要么将 AL
中的字节与任何字节大小的操作数相乘,要么将 AX
中的字与任何字大小的操作数相乘。选择权在您,但由于您将 chickenPrice 定义为一个字节,因此字节大小的乘法将是正确的。
mov al, ... <-- Here the number gotten from user input
mul chickenPrice
两个数字的乘积现在在 AX
寄存器中
Displaying numbers with DOS 详细解释了如何显示多位数。在答案的 方法 2 段落中查找代码片段。