Переведено для codeby. Net
Download 0.92 Mb. Pdf ko'rish
|
эксплуатация систем arm linux AFANX
- Bu sahifa navigatsiya:
- 3.4 Инструкции по обработке данных
Инструкция Подразумевает
B Ветвление (Branch) BL Ветвление с линковкой (Branch with Link) BX Ветвление и обмен (Branch and Exchange) BLX Ветвлние с линковкой и обменом (Branch with Link and Exchange) Стандартную инструкцию Branch (B) можно рассматривать как простой переход, вперед или назад в коде, вплоть до 32 МБ. Для вызова подпрограммы BL является лучшим выбором, поскольку он сохраняет адрес команды после ветвления (адрес возврата) в регистр связи R14. Инструкция BX использует содержимое регистра общего назначения, чтобы решить, куда переходить. Инструкция BLX представляет собой комбинацию этих двух инструкций. 13 Рис. 5: BL вызов подпрограммы Альтернативным способом выполнения безусловных переходов является прямое манипулирование программным счетчиком, операция, разрешенная в архитектуре ARM. Вот некоторые примеры использования ("subroutine 1" является меткой): 1 B subroutine_1 ; unconditional jump 2 BEQ subroutine_1 ; conditional jump 3 BL subroutine_1 ; function call Вместо этого это прямая манипуляция со счетчиком программ: 1 MOV PC, #1100 ; R15 = 1100 Позже мы увидим, что с помощью некоторых инструкций ветвления также можно изменить набор инструкций, используемый процессором. 3.4 Инструкции по обработке данных Арифметические, логические и сравнительные инструкции относятся к классу обработки данных. С помощью этих инструкций мы можем манипулировать значениями, хранящимися в регистрах, проводить сравнения (и соответствующим образом устанавливать регистр CPSR), а также выполнять большое количество математических вычислений. Это самый многочисленный класс, поэтому будут рассмотрены только самые важные инструкции. 14 |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling