#include <stdio.h>
int function()
{
return 123;
}
void main()
{
}
#if 0
/*
* intel
*/
0000000000000000 <function>:
0: f3 0f 1e fa endbr64
4: 55 push %rbp
5: 48 89 e5 mov %rsp,%rbp
8: b8 7b 00 00 00 mov $0x7b,%eax # 123
d: 5d pop %rbp
e: c3 retq
000000000000000f <main>:
f: f3 0f 1e fa endbr64
13: 55 push %rbp
14: 48 89 e5 mov %rsp,%rbp
17: 90 nop
18: 5d pop %rbp
19: c3 retq
/*
* arm
*/
0000000000000000 <function>:
0: 52800f60 mov w0, #0x7b #123
4: d65f03c0 bl lr
0000000000000008 <main>:
8: d503201f nop
c: d65f03c0 bl lr
LR:link register, 存储函数结束之后的返回地址(RA/Return Address).
BX LR 作用是调转到返回地址,即返回到调用者函数,然后继续执行调用体caller的后续指令。
#endif