ARMv7 汇编操作码和操作数如何以字节为单位存储?

逆向工程 拆卸 手臂
2021-06-17 21:00:10

我一直在尝试分析 ARM 二进制文件,但无法弄清楚运算符和操作数如何存储在程序的字节中。

例如,通过查看 ARMv7 二进制文件的反汇编列表,我无法cmp从这三行推断出操作码什么,也无法理解它的编码方式或操作数的编码方式:

cmp r5, #0; 0x2d00
cmp r4, #0; 0x2c00
cmp r0, r2; 0x4290

如何为cmp运营商,它的相应的操作数编码为两个字节?

1个回答

请参阅ARM7 数据表 4.4 数据处理第 23 页。但是根据指令集(ARM 或 Thumb),指令的编码会有所不同。另见这个问题