#include
int f()
{
int a = 0x55;
return a;
}
int main()
{
int a = 1;
a = f();
printf("0x%x\n", a); // 0x55
return 0;
}
#if 0
/*
* intel
*/
0000000000001149 :
1149: f3 0f 1e fa endbr64
114d: 55 push %rbp
114e: 48 89 e5 mov %rsp,%rbp
1151: c7 45 fc 55 00 00 00 movl $0x55,-0x4(%rbp)
1158: 8b 45 fc mov -0x4(%rbp),%eax
115b: 5d pop %rbp
115c: c3 retq
000000000000115d :
115d: f3 0f 1e fa endbr64
1161: 55 push %rbp
1162: 48 89 e5 mov %rsp,%rbp
1165: 48 83 ec 10 sub $0x10,%rsp
1169: c7 45 fc 01 00 00 00 movl $0x1,-0x4(%rbp)
1170: b8 00 00 00 00 mov $0x0,%eax
1175: e8 cf ff ff ff callq 1149
117a: 89 45 fc mov %eax,-0x4(%rbp)
117d: 8b 45 fc mov -0x4(%rbp),%eax
1180: 89 c6 mov %eax,%esi
1182: 48 8d 3d 7b 0e 00 00 lea 0xe7b(%rip),%rdi # 2004 <_IO_stdin_used+0x4>
1189: b8 00 00 00 00 mov $0x0,%eax
118e: e8 bd fe ff ff callq 1050
1193: b8 00 00 00 00 mov $0x0,%eax
1198: c9 leaveq
1199: c3 retq
119a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)
/*
* arm
*/
000000000040055c :
40055c: d10043ff sub sp, sp, #0x10
400560: 52800aa0 mov w0, #0x55 // #85
400564: b9000fe0 str w0, [sp, #12]
400568: b9400fe0 ldr w0, [sp, #12]
40056c: 910043ff add sp, sp, #0x10
400570: d65f03c0 ret
0000000000400574 :
400574: a9be7bfd stp x29, x30, [sp, #-32]!
400578: 910003fd mov x29, sp
40057c: 52800020 mov w0, #0x1 // #1
400580: b9001fa0 str w0, [x29, #28]
400584: 97fffff6 bl 40055c
400588: b9001fa0 str w0, [x29, #28]
40058c: 90000000 adrp x0, 400000 <_init-0x3e8>
400590: 91196000 add x0, x0, #0x658
400594: b9401fa1 ldr w1, [x29, #28]
400598: 97ffffae bl 400450
40059c: 52800000 mov w0, #0x0 // #0
4005a0: a8c27bfd ldp x29, x30, [sp], #32
4005a4: d65f03c0 ret
#endif