[МС68HC11] Заполнить ячейки. Индексная адресация - Микроконтроллеры
Формулировка задачи:
Всем привет. Только начал изучение Ассемблера, поэтому требуется ваша помощь.
Контроллер МС68HC11.
"Необходимо написать программу, заполняющую ячейки $8200...$8205 значением $55, используя индексную адресацию."
Не используя индексную адресацию получается, а вот с индексной проблемы
Не индексная:
Заранее спасибо
org $8000
a equ $55
ldaa #a
std $8200
ldaa #a
std $8201
ldaa #a
std $8202
ldaa #a
std $8203
ldaa #a
std $8204
ldaa #a
std $8205Решение задачи: «[МС68HC11] Заполнить ячейки. Индексная адресация»
textual
Листинг программы
ldx #$8200 ldaa #$55 loop: staa 0,x inx cpx #$8206 bne loop
Объяснение кода листинга программы
- Устанавливается значение переменной x равное
$8200. - Устанавливается значение переменной aa равное
$55. - Запускается цикл, помеченный меткой
loop. - Значение переменной aa записывается в ячейку памяти по адресу, на который указывает переменная x.
- Переменная x инкрементируется, чтобы указывать на следующую ячейку в памяти.
- Значение переменной x сравнивается с
$8206, если они не равны, то происходит переход к меткеloopи начинается следующая итерация цикла. - Если значения переменной x и
$8206равны, то цикл завершается и программа продолжает выполняться с помощью следующей инструкции после цикла.