arm二进制文件转换成c语言,转换非常简单的ARM指令将二进制/十六进制(Converting very simple ARM i...

首先,你需要的ARM架构参考手册(ARM ARM)在infocenter.arm.com,参考手册,获得最古老的一个(或的ARMv5什么)。 所述指令集在那里很好的定义。

其次,你为什么不只是组装一些指令,并看看会发生什么?

;@test.s

cmp r1, r0

add r0, #0x1a

你有什么交叉汇编(见http://github.com/dwelch67/raspberrypi在脚本编译GCC目录,只要运行了直通binutils的那个脚本)

arm-none-linux-gnueabi-as test.s -o test.o

arm-none-linux-gnueabi-objdump -D test.o

手臂-NONE-Linux的gnueabi VS臂无小精灵VS手臂精灵等不事本,都做同样的

Disassembly of section .text:

00000000 <.text>:

0: e1510000 cmp r1, r0

4: e280001a add r0, r0, #26

一个完整的32位指令臂(未大拇指)的顶部4位是条件代码,请参阅ARM ARM条件字段部分。 一个0xE意味着永远,永远执行这一指令。 0b0000仅当量如果z标志被设置,执行,0b0001 NE只执行如果z是清晰等

在ARM ARM进军ARM指令集的ARM指令,然后按字母顺序排列,然后找到CMP它开始COND 00I10101 RN SBZ器

从我们的CMP指令中,我们发现1110 000101010001 ...所以我是一个零位15:12都是零位27:26都是零和24:21是1010,所以这是一个CMP指令

以上位19至16是项目0B001这是rn所以RN = 1(R1),用于在它告诉你看寻址模式1的数据处理的操作数的ARM ARM移位器的操作数,并具有在PDF到页面的链接

我们知道,我们希望第二个操作数仅仅是一个寄存器,被调用的数据处理操作数 - 注册,和页码,转到页页15:12上RD 11:4是零和3:0为rm 。 我们从CMP指令知道它说15:12应该是零,我不知道是否在乎,在CMP不结果存储到寄存器,所以不使用RD。 RM使用,在这种情况下,我们希望R0,所以0b0000进去3:0也注意到,它表明位27:25为零,在CMP指令25是我,我们现在知道,我们希望有一个零有这么

在CMP页面,这个数据处理之间 - 注册页面我们的全貌

1110 condition

000

1010 opcode

1 S (store flags, that is a 1 for a cmp to be useful)

0001 rn

0000 rd/dont care/sbz

00000

000

0000 rm

cmp rn,rm

cmp r1,r0

附加类似,但采用了直接的,所以去的指令阿尔法列表中的加法指令。 现在我们知道从CMP是24:21这一类的指令是操作码,我们几乎可以直行至移位操作的东西从那里继续

这一次,我们正在做的添加RD,RN,立即#

所以找了#immediate页面

和编码是

1110 condition, always

001 (note the immediate bit is set)

0100 (opcode for add for this type of instruction)

0 (S not saving the flags, it would be adds r0,r0,#26 for that)

0000 (rn = r0)

0000 (rd = r0)

现在到了有趣的部分,我们可以编码26种不同的方式。 位7:0是直接和位11:8允许立即旋转,26 0x1A的,我们可能只是简单地把0x1A的低8位,并设置旋转为0,这就是GNU汇编一样。 很可能把0x68在低8位,并在rotate_imm字段1101000 1向右旋转1 * 2位是11010 = 0x1A的= 26。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值