Переведено для codeby. Net


Download 0.92 Mb.
Pdf ko'rish
bet11/36
Sana09.05.2023
Hajmi0.92 Mb.
#1449564
TuriРеферат
1   ...   7   8   9   10   11   12   13   14   ...   36
Bog'liq
эксплуатация систем arm linux AFANX

FD
Full Descending
ED
Empty Descending
FA
Full Ascending
EA
Empty Ascending
Поскольку новое поведение аналогично поведению предыдущих мнемоник, мы
будем визуализировать тот же самый пример:
MEMORY
... R13-4 R13-3 R13-2 R13-1
R13
R13+1 R13+2 R13+3 R13+4 ...
(STM)FD
...
R1
R1
R1
R1
R0
R0
(STM)ED
...
R1
R1
(STM)FA
...
R1
R1
R1
R1
R0
R0
R0
R0
...
(STM)EA
R1
R0
R0
R0
R0
...
Рис. 9: Обращение к поведению в стеке
20


Теперь, когда мы знаем эти новые мнемоники, можно представить инструкции
Load и Store Multiple:
Инструкция Подразумевает
LDM
Многократная нагрузка(Load Multiple)
STM
Многократное сохранение(Store Multiple)
Для примера (См: ARM Architecture Reference Manual, стр. 134):
1 
STMFD R13!, {R0-R12, LR}
2
LDMFD R13!, {R0-R12, PC}
3
LDMIA R0,
{R5-R8}
4
STMDA R1!,
{R2, R5, R7 – R9, R11}
Поскольку поведение этих инструкций поначалу может показаться
контринтуитивным, мы проанализируем первый пример.
Инструкция STMFD использует режим полной адресации по убыванию (как
видно во второй строке рисунка 9) для хранения регистра от R0 до R12 и
регистра Link (всего 56 байт), начиная с ячейки памяти, на которую указывает
R13 (используется как базовый регистр).
Важно уточнить значение символа ! после базового регистра R13: если
присутствует знак вопроса, то базовый регистр модифицируется
(увеличивается или уменьшается, в зависимости от режима адресации), чтобы
пропустить только что записанные данные, и чтобы указать на следующую
область памяти.
Хорошее понимание поведения инструкций Load и Store очень важно, так как
они необходимы для эксплуатации программного обеспечения на системах
ARM.

Download 0.92 Mb.

Do'stlaringiz bilan baham:
1   ...   7   8   9   10   11   12   13   14   ...   36




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling