登记册中最大的正数

时间:2016-12-16 13:42:40

标签: math assembly

在汇编中,我们可以通过从FFFFh中减去正值,然后将其增加1来获得负数,因此大约一半的寄存器保留给负数。

如果我们将两个数相乘,并且结果对于一个寄存器来说太大,则将其余数传递给dx。

所以,我的问题是,可以存储在寄存器中的最大正数是多少,因为当我将不同的数字对相乘时,ax和dx都不相同。

1 个答案:

答案 0 :(得分:0)

您可以将相同的寄存器内容解释为有符号数字或无符号数字。在第一种情况下,最大值为0x7F*** = 2^(regsize-1)-1(对于16位为32767),在第二种情况下,最大值为0xFF** = 2^regsize-1(对于16位为65535)

(请注意,有imulmul个用于乘法的命令,第一个用于符号。

Hex byte example
80 imul 2 = FF:00
80  mul 2 = 01:00