Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- c program:
- #include <stdio.h>
- int add(int a, int b)
- {
- int output;
- output = a+b;
- return output;
- }
- int main()
- {
- int answer;
- answer = add(3,5);
- return 0;
- }
- assembly output:
- Dump of assembler code for function main:
- 10 {
- 0x0000000000400507 <+0>: push %rbp
- 0x0000000000400508 <+1>: mov %rsp,%rbp
- 0x000000000040050b <+4>: sub $0x10,%rsp
- 11 int answer;
- 12 answer = add(3,5);
- 0x000000000040050f <+8>: mov $0x5,%esi
- 0x0000000000400514 <+13>: mov $0x3,%edi
- 0x0000000000400519 <+18>: callq 0x4004ed <add>
- 0x000000000040051e <+23>: mov %eax,-0x4(%rbp)
- 13 return 0;
- 0x0000000000400521 <+26>: mov $0x0,%eax
- 14 }
- 0x0000000000400526 <+31>: leaveq
- 0x0000000000400527 <+32>: retq
- End of assembler dump.
- 0x000000000040050b 10 {
- 7: $rip = (void (*)()) 0x40050b <main+4>
- 6: $rdx = 140737488346616
- 5: $rax = 4195591
- 4: $rdi = 1
- 3: $rsi = 140737488346600
- 2: $rsp = (void *) 0x7fffffffdd00
- 1: $rbp = (void *) 0x7fffffffdd00
- (gdb) x /8wx $rsp
- 0x7fffffffdd00: 0x00000000 0x00000000 0xf7a36f45 0x00007fff
- 0x7fffffffdd10: 0x00000000 0x00000000 0xffffdde8 0x00007fff
- (gdb) stepi
- 12 answer = add(3,5);
- 7: $rip = (void (*)()) 0x40050f <main+8>
- 6: $rdx = 140737488346616 ------> hex value 0x7FFFFFFFDDF8
- 5: $rax = 4195591 ---------------> hex value 0x400507
- 4: $rdi = 1
- 3: $rsi = 140737488346600---------> hex value 0x7FFFFFFFDDE8
- 2: $rsp = (void *) 0x7fffffffdcf0
- 1: $rbp = (void *) 0x7fffffffdd00
- (gdb) x /8wx $rsp
- 0x7fffffffdcf0: 0xffffdde0 0x00007fff 0x00000000 0x00000000
- 0x7fffffffdd00: 0x00000000 0x00000000 0xf7a36f45 0x00007fff
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement