2015-03-01 5 views
0

Какой код операции для инструкции BLX в сборке ARM? и размер. В окнах опкод JMP является 0xE9 Как найти опкод и размер для инструкции BLXЧто такое код команды BLX?

+1

Посмотрите на Справочное руководство по архитектуре ARM (ARM ARM) для кодирования. В ARM-архитектуре команда BLX может быть 2 байта или 4 байта в зависимости от того, задана ли команда Thumb-2 или ARM. – auselen

+0

Я ищу один в наборе команд ARM – user3692940

ответ

1

Из картины ниже вы можете увидеть, что Branch и обмен инструкция имеет опкод 0x9 (0b1001). Этот код операции содержится в битах [24:21] инструкции. Размер инструкции 32-бит. Номер бит находится в верхней части изображения.

ARM instructions decoding

См this для инструкций ветвления в ARM.

Я также попытался скомпилировать код, используя BLX инструкции и посмотреть, как это представлено в машинном коде:

+-----------------+--------------+ 
| Assembler code | Machine code | 
+-----------------+--------------+ 
| blx r0  | e12fff30 | 
| blx r1  | e12fff31 | 
| blx r13  | e12fff3d | 
+-----------------+--------------+ 

Таким образом, вы можете увидеть, что биты [24:21] всегда 0b1001.

+0

Возможно, все статические биты считаются кодом операции. Трудно определить, поскольку ARM не имеет инструкций переменной длины, делящихся между опкодом и параметрами – auselen

+0

Это зависит от определения «кода операции». В случае ARM «код операции» означает бит [24:21]. Говоря о статических битах, мы должны использовать термин «статические биты» на одной странице. Во всяком случае, я надеюсь, что фотография выше отвечает на ваш вопрос. –

+0

Возможно, что вы ищете здесь: http://imrannazar.com/ARM-Opcode-Map. Он похож на то, как часто отображаются команды x86, я имею в виду в виде таблицы. –