Переведено для codeby. Net
Download 0.92 Mb. Pdf ko'rish
|
эксплуатация систем 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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling