Я уже давно борюсь с этим вопросом, и мне нужна помощь.
Этот вопрос основан на процессоре симулятора EASY68K. Используйте набор инструкций процессора T121 симулятора EASY68K, чтобы ответить на следующие вопросы.
Перепишите программу на рисунке Q3, включив в нее подпрограмму для добавления серии целых чисел. Подпрограмма должна выполнять функции цикла. Подпрограмма занимает место в памяти чуть ниже основной программы. Используйте SUM в качестве метки адреса подпрограммы.
РИСУНОК Q3
ORG $1000
START MOVE #$2000,A0
MOVE.B #$08,D0
MOVE.L #$0,D1
LOOP ADD.B (A0)+,D1
SUB.B #$01,D0
BNE LOOP
LSR #$03,D1 ; Logical Shift Right by 3 places
MOVE.B D1, $2050
STOP #$2700
Инициализируйте и используйте тестовые данные: 1, 2, 3,… с точностью до счетчика цикла, выведенного в вопросе 3 (b). Предположим, что содержимое всех регистров данных установлено на ноль перед запуском программы.
Вот моя работа. Я не уверен, правильно ли я это делаю, потому что не понимаю, как решить этот вопрос.
ORG $1000
START MOVE #$2000,A0
MOVE.B #$08,D0
MOVE.L #$0,D1
BSR SUM ;BRANCH SUMBROUTINE
STOP #$2700
SUM ADD.B (A0)+,D1
SUB.B #$01,D0
BNE SUM
LSR #$03,D1 ; Logical Shift Right by 3 places
MOVE.B D1, $2050
RTS
ORG $2000
DATA DC.B $1,$2,$3,$4,$5,$6,$7,$8 ; Define constant.
END START