Хранение значений в Array в ARM-Assembly - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть предопределенный массив в ARM-Assembly, например

Sample  DCD 0x003, 0x004, 0x005, 0x006

Я просто хочу изменить индексы Sample [0] и Sample [1]

И я написал ARM-Код ассемблера для замены

LDR R0, =Sample
LDR R1, [R0]
LDR R2, [R0, #4]
MOV R3, R1
MOV R1, R2
MOV R2, R3
STR R1, [R0]
STR R2, [R0, #4]

И я извлекаю данные один за другим в R4 как

MAIN
LDR R4, [R0], #4
B MAIN

Это выглядит так просто, но массив не меняется, он все тот же

Как я могу изменить индексы?

Вкратце мой ввод

Sample  DCD 0x003, 0x004, 0x005, 0x006

И я хочу вывод как

Sample  DCD 0x004, 0x003, 0x005, 0x006

1 Ответ

0 голосов
/ 10 декабря 2018

Ваш массив не меняется, потому что вам нужно ДОПОЛНИТЬ стрелку перед загрузкой.Ваш код ничего не делает, потому что вы не загружаете адрес памяти.Это будет работать.

   ADR     R0, Sample
   LDR     R1, [R0]
   LDR     R2, [R0, #4]
   MOV     R3, R1
   MOV     R1, R2
   MOV     R2, R3
   STR     R1, [R0]
   STR     R2, [R0, #4]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...