ФЭНДОМ


BLX 2 (ARM)

Формат инструкции BLX типа 2

Команда BLX второго типа вызывает подпрограмму ARM или Thumb из кода ARM по адресу, находящемуся в указанном регистре общего назначения. Адрес возврата к коду ARM сохраняется в регистре LR (R14).

Синтаксис

BLX{cond}  Rm

cond указывает, при каком условии команда будет выполнена.

Rm задаёт регистр, в котором находится адрес перехода. Бит 0 регистра задаёт режим процессора после перехода: 0 для ARM и 1 для Thumb (содержимое этого бита при переходе заносится в разряд T регистра CPSR). Биты 31–1 копируются в счётчик команд, а младший разряд счётчика команд устанавливается равным нулю.

Если в качестве Rm задан PC, результат будет непредсказуемым.

Версии архитектуры

ARMv5 и старше.

Исключения

Отсутствуют.

Операция

if условие выполнено then
  target = Rm
  LR = адрес инструкции, следующей за BLX
  CPSR.T = target[0]
  PC = target AND 0xFFFFFFFE

Примечания

Если Rm[1:0] = 10, результат будет непредсказуемым, поскольку команды набора ARM должны быть выровнены по границе слова.

Материалы сообщества доступны в соответствии с условиями лицензии CC-BY-SA , если не указано иное.