0

假设我们有以下内容:

MOVE.L #$1234ABCD,D0
MOVE.L #$45670012,D1
MULS D0,D1

D1 的值是多少?根据 mc68000 模拟器,它将是 FFFA146A。书上说,每个寄存器的两个最低位字将相乘,结果将作为长字存储。因此,它将是 0xABCD * 0x0012 = 0xC146A。根据这个规则,D1 应该是 000C146A。我注意到 146A 的值与模拟器中的相同,但是 A 来自哪里,Fs 来自哪里?模拟器错了吗?

谢谢

4

1 回答 1

2

我对摩托罗拉的代码了解为 0,但我认为这与您使用有符号乘数的事实有关?尝试使用无符号乘数。

于 2012-03-07T00:41:26.863 回答