Какой код операции для инструкции BLX в сборке ARM? и размер. В окнах опкод JMP является 0xE9 Как найти опкод и размер для инструкции BLXЧто такое код команды BLX?
ответ
Из картины ниже вы можете увидеть, что Branch и обмен инструкция имеет опкод 0x9 (0b1001). Этот код операции содержится в битах [24:21] инструкции. Размер инструкции 32-бит. Номер бит находится в верхней части изображения.
См this для инструкций ветвления в ARM.
Я также попытался скомпилировать код, используя BLX инструкции и посмотреть, как это представлено в машинном коде:
+-----------------+--------------+
| Assembler code | Machine code |
+-----------------+--------------+
| blx r0 | e12fff30 |
| blx r1 | e12fff31 |
| blx r13 | e12fff3d |
+-----------------+--------------+
Таким образом, вы можете увидеть, что биты [24:21] всегда 0b1001.
Возможно, все статические биты считаются кодом операции. Трудно определить, поскольку ARM не имеет инструкций переменной длины, делящихся между опкодом и параметрами – auselen
Это зависит от определения «кода операции». В случае ARM «код операции» означает бит [24:21]. Говоря о статических битах, мы должны использовать термин «статические биты» на одной странице. Во всяком случае, я надеюсь, что фотография выше отвечает на ваш вопрос. –
Возможно, что вы ищете здесь: http://imrannazar.com/ARM-Opcode-Map. Он похож на то, как часто отображаются команды x86, я имею в виду в виде таблицы. –
Посмотрите на Справочное руководство по архитектуре ARM (ARM ARM) для кодирования. В ARM-архитектуре команда BLX может быть 2 байта или 4 байта в зависимости от того, задана ли команда Thumb-2 или ARM. – auselen
Я ищу один в наборе команд ARM – user3692940