首页
社区
课程
招聘
[求助]请教下arm-linux-as工具中怎样写b指令
发表于: 2013-7-11 23:39 6810

[求助]请教下arm-linux-as工具中怎样写b指令

2013-7-11 23:39
6810
大家好,我想从arm汇编指令得到机器码,可以用as工具这样写:
// arm.txt
.code 32
MOV R0, SP

// command line
E:\armgen>arm-linux-as -ahlm -k -mthumb-interwork -march=armv7-a c:\arm.txt
ARM GAS  c:\arm.txt                     page 1
   1                    .code 32
   2 0000 0D00A0E1      MOV R0, SP

对于B,BL,BLX可以这样写:
//arm.txt
.code 16
BLX .sub_xxx
.code 32
ADD  R0, PC
ADD  R0, PC
.sub_xxx: ADD  R0, PC

// command line
E:\armgen>arm-linux-as -ahlm -k -mthumb-interwork -march=armv7-a c:\arm.txt
ARM GAS  c:\arm.txt                     page 1
   1                    .code 16
   3 0000 00F004E8      BLX .sub_xxx
   5
   6                    .code 32
   8 0004 0F0080E0      ADD  R0, PC
  10 0008 0F0080E0      ADD  R0, PC
  12 000c 0F0080E0      .sub_xxx: ADD  R0, PC

但是上面的BLX的偏移是工具根据标号的位置自动计算的,如果我想指定一个偏移应该怎样写呢?比如我想像下面这样写但是没有成功:
.code 16
BLX #0xce0

[招生]科锐逆向工程师培训(2025年3月11日实地,远程教学同时开班, 第52期)!

收藏
免费
支持
分享
最新回复 (4)
雪    币: 3
活跃值: (553)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
用gcc内联汇编?

#define JMP_ADDR(addr) asm("\tbx %0\n" :: "r" (addr))
2013-7-12 09:36
0
雪    币: 257
活跃值: (44)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
LS,你这个具体是写在哪里,我试了不对,把我工具传上来你帮忙看看好么
上传的附件:
2013-7-12 09:49
0
雪    币: 3
活跃值: (553)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
直接写在c源码里。
2013-7-12 10:18
0
雪    币: 257
活跃值: (44)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
LS 能不能给个示例,我用as工具汇编c源码失败,请给个调用参数
2013-7-12 10:55
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册