一个ARM简单反汇编例子
来源:互联网 发布:政府网络舆情监控系统 编辑:程序博客网 时间:2024/05/05 15:38
下面是一个简单的函数调用ARM反汇编例子
/*C语言源代码*/
static int d = 13;
char e = 1;
char* fun(char a, int b)
{
char *p = "anhu";
*p = a;
*(p+3) = b;
return p;
}
int main(void)
{
char* f = fun(100,200);
*f='c';
return 0;
}
以下是上述C语言的ARM核心反汇编代码以及我添加的注释(ADS1.2上编译)
……
** Section #5 '.text' (SHT_PROGBITS) [SHF_ALLOC + SHF_EXECINSTR]
Size : 60 bytes (alignment 4)
fun
$a
.text
0x00000000: e1a02000 .... MOV r2,r0
0x00000004: e28f0008 .... ADD r0,pc,#8 ; #0x14 ;执行到0x00000004时,pc已经为0x0000000c
0x00000008: e5c02000 . .. STRB r2,[r0,#0] ;*p=a
0x0000000c: e5c01003 .... STRB r1,[r0,#3] ;*(p+3)=b
0x00000010: e1a0f00e .... MOV pc,r14 ;r14保存了返回地址
$d
0x00000014: 75686e61 anhu DCD 1969778273 ;常量字符串
0x00000018: 00000000 .... DCD 0
main
$a
0x0000001c: e52de004 .... STR r14,[r13,#-4]! ;保存r14,r13地址完了自减4
0x00000020: e3a010c8 .... MOV r1,#0xc8
0x00000024: e3a00064 .... MOV r0,#0x64
0x00000028: ebfffffe .... BL fun ; 0x0
0x0000002c: e3a01063 .... MOV r1,#0x63 ;'c' = 0x63
0x00000030: e5c01000 .... STRB r1,[r0,#0] ;fun返回值保存在r0中
0x00000034: e3a00000 .... MOV r0,#0
0x00000038: e49df004 .... LDR pc,[r13],#4
……
- 一个ARM简单反汇编例子
- 学习ARM反汇编工具objdump和一个简单实例
- 一个反汇编的例子
- 一个反汇编的例子
- arm汇编编程 简单例子
- arm反汇编方法
- ARM反汇编学习
- arm反汇编方法
- arm 反汇编基础
- arm 反汇编
- ARM反汇编练习
- arm 反汇编
- 一个简单函数的反汇编
- 一个简单函数的反汇编
- 反汇编一个简单的C程序
- 反汇编一个简单的C程序
- 反汇编一个简单的C程序
- 反汇编一个简单的C程序
- java字符串应用之表达式解析器
- test
- PHP中文字符截取方案(UTF8,GB编码截取)
- 问道乾坤锁最新说明
- qq音信点亮最全说明
- 一个ARM简单反汇编例子
- 07深圳浩项隔音窗,隔音知识与方法
- MFC 函数
- QQ号盗取代 VC
- Asp中BuildPath函数的使用
- Asp创建文件夹函数
- asp中FileSystemObject 示例代码
- Asp中随机生成的临时文件或文件夹的名称函数
- 实习第6天!