MC68000 умножение сборки - PullRequest
0 голосов
/ 07 марта 2012

Скажем, у нас есть следующее:

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

Каким будет значение D1? Согласно симулятору mc68000, это будет FFFA146A. Согласно книге, два слова самого низкого порядка каждого регистра будут умножены, а результат будет сохранен как длинное слово. Следовательно, это будет 0xABCD * 0x0012 = 0xC146A. Согласно этому правилу D1 должен быть 000C146A. Я заметил, что значения 146A такие же, как в симуляторе, но откуда взялись A и Fs? Симулятор не так?

Спасибо

1 Ответ

2 голосов
/ 07 марта 2012

Я знаю 0 о коде Motorola, но я думаю, что это связано с тем, что вы используете множитель со знаком?Попробуйте использовать множитель без знака.

...