首页
社区
课程
招聘
[求助]不知有没有ARM跳转指令计算器
发表于: 2014-3-29 11:09 8536

[求助]不知有没有ARM跳转指令计算器

2014-3-29 11:09
8536
收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 112
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
自己写一个就有了
2014-3-31 16:07
0
雪    币: 53
活跃值: (280)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
http://www.kanxue.com/bbs/showthread.php?t=166444
你可以去下载Android ndk,里边有arm-linux-androideabi-as,arm下的汇编器,自己写上汇编码,运行一下就可以列出机器码了
2014-4-8 10:45
0
雪    币: 13203
活跃值: (4266)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这工具之前都有下
主要是想跨度计算偷偷懒
2014-4-9 11:22
0
雪    币: 53
活跃值: (280)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
一样的啊,写指令呗
.org 0x20567
MYSLOT:
   mov r0, r0

.org 0x23232
B MYSLOT
2014-4-9 19:00
0
雪    币: 13203
活跃值: (4266)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
原来android-ndk里的工具就是你发布的那个。。。。
我还下载解压老半天。。
好像不能自定义位置吖
出来的地址那里都是问号
能否发个完整演示代码
2014-4-9 22:29
0
雪    币: 53
活跃值: (280)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
.org指令是支持的,比如示例

=====================================================

    .syntax unified
    .text
    .align  4
    .global asmgen
    .type   asmgen, %function

    .org 0x8000
asmgen:
    push        {lr}
    mov r0, r0
    pop         {pc}

    .org 0x9000
mydat:
    B asmgen

当然还需要经过as汇编,ld链接之后,再用objdump反编译查看

目前也没想到什么好办法,建议还是查看具体的汇编手册,根据指令格式计算吧
比如<arm_architecture_v7m_reference_manual>
2014-4-11 15:50
0
雪    币: 53
活跃值: (280)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
as、ld、objdump工具都可以用Android NDK中的arm-linux-androideabi-xxx.exe
e.g.
目录位于:
android-ndk-r9\toolchains\arm-linux-androideabi-4.8\prebuilt\windows\bin
2014-4-11 15:52
0
雪    币: 13203
活跃值: (4266)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
感谢
我再去试试
还好没删。。。
2014-4-11 18:03
0
雪    币: 188
活跃值: (167)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
10
自己写就行啊。

如果用B或者BL  公式就是  SrcAddr + (x << 2 +8) = DestAddr

然后 B X 或者 BL x

如果用BX,需要用寄存器

LDR r12,[pc, #4]
add r12, pc, r12
bx   r12

DD:DestAddr - SrcAddr
2014-7-4 17:20
0
雪    币: 188
活跃值: (167)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
11
[QUOTE=cacorothuo;1298248]自己写就行啊。

如果用B或者BL  公式就是  SrcAddr + (x << 2 +8) = DestAddr

然后 B X 或者 BL x

如果用BX,需要用寄存器

LDR r11,[pc, #4]
add r11, pc, r11
bx   r11

DD:De...[/QUOTE]

机器码 B的机器码 EA

04B09FE5              ldr     r11,[pc,#4]
0BB08FE0              add     r11,pc,r11
3BFF2FE1               blx     r11
2014-7-4 17:40
0
游客
登录 | 注册 方可回帖
返回
//