Спасибо за комментарии. Я решил свою проблему. Я не использовал al oop, потому что «это урок следующей недели», но вот как я это сделал:
Сначала я загрузил первые 4 символа в R2 (я не уверен, что смогу загрузить больше но эмулятор, который я использовал, может хранить до 8 байт. Символ равен 2 байта, то есть 4 символа):
LDR r2, [r1]
и число 32 внутри R3:
MOV R3, 0x20
Затем для каждого символа я повторил эту последовательность инструкций:
ORR r2, r3, r2
LSL r3, r3, #8
Я использовал LSL, чтобы умножить значение R3 (в десятичном формате 32, в шестнадцатеричном 0x20) на 2 в степени 8 (то есть умножить на 256 ). В результате с каждым LSL добавлялось 2 нуля после моего номера, и я мог использовать инструкцию ORR для следующего символа.
После того, как я закончил с первым набором символов, я сохранил их в памяти и загрузил второй:
STR r2, [r1]
ADD r1, r1, #4
LDR r2, [r1]
Я снова инициализировал R3 в 32:
LSR r3, r3, #24
и повторил ORR и LSL еще 3 раза. Я сохранил этот набор символов рядом с первым, а затем вернулся к началу моей строки и вызвал мою функцию, которая печатает строку на терминале:
STR r2, [r1]
SUB r1, r1, #4
bl EcrChaine
, которая отлично работала. Полученный файл, однако, очень большой с точки зрения количества строк и может быть существенно уменьшен с помощью al oop, но я пока не использовал его, потому что «нас этому еще не учили в классе».