У меня есть вопрос относительно инструкции MULU. Одна вещь, которую я заметил, - это предположить, что в регистре данных значение 000FFFFF. А потом предположим, что я хочу добавить еще F, чтобы он содержал 00FFFFFF. То, что я обычно делаю умножать регистр данных на 16 следующим образом:68000 Сборка: Умножение дает странный результат
MULU #16, D4
А потом добавить еще один F, выполнив ADD инструкции (так что я получаю 00FFFFFF). Но когда я снова умножаюсь на 000FFFFF, все биты внутри регистра данных заканчиваются на нуль (00000000). После этого умножайтесь, у меня будет 000FFFF0, а затем последует остальные. Я до сих пор не понимаю причину этого. Я посмотрел this example, и я чувствую, что он должен работать. Я также заметил, что бит Extend, Carry и Zero имеет значение true, если я просто добавляю 1 к 000FFFFF
Что _ «Но когда я снова умножаются на 000FFFFF» _ имею в виду? Покажите нам точную последовательность инструкций. Кроме того, почему бы вам просто не сдвинуть влево на 4 вместо умножения на 16? – Michael
Вы правы. Я не должен был использовать умножение. Вместо этого сдвиг влево на 4 является хорошим решением. Задача решена. –