Вы можете просто собрать CMP R0, R0
или CMP #0, #0
и извлечь таким образом необходимый код операции из этих инструкций.
Другой способ - посмотреть справочное руководство по ARM и вручную создать код операции. Это - руководство по ARMv5, которое я быстро нашел, и под 7.1.22
у вас есть CMP <Rn>, <Rm>
с подробностями построения кода операции для сравнения двух регистров. Детали, похоже, совпадают с руководством по ARMv7, которое я также нашел непосредственно перед тем, как собирался опубликовать.
Он имеет биты 15-6, являющиеся 0 1 0 0 0 0 1 0 1 0
, тогда биты 5-3 являются номером первого регистра (число 0 представлено 3 битами для R0
), а биты 2-0 являются вторым регистром (также R0
). Итак, ваш код операции теперь будет:
0 1 0 0 0 0 1 0 1 0
(CMP
) 000
(R0
) 000
(R0
)
100001010000000
в шестнадцатеричном виде - 4280
, поэтому в порядке с прямым порядком байтов вам понадобятся два байта 80 42
.
Как вы можете видеть, было бы намного проще просто позволить ассемблеру решить эту проблему за вас.