Skip to content

Instantly share code, notes, and snippets.

@larsbergstrom
Created January 5, 2014 17:15
Show Gist options
  • Save larsbergstrom/8270924 to your computer and use it in GitHub Desktop.
Save larsbergstrom/8270924 to your computer and use it in GitHub Desktop.
disassembly and registers
(gdb) disas 0x49ac0b
Dump of assembler code for function _ZN4sync7atomics12atomic_store19h05a0c6a14b8e9ba0a84v0.0E:
0x000000000049ab90 <+0>: cmp %fs:0x70,%rsp
0x000000000049ab99 <+9>: ja 0x49abb5 <_ZN4sync7atomics12atomic_store19h05a0c6a14b8e9ba0a84v0.0E+37>
0x000000000049ab9b <+11>: movabs $0x48,%r10
0x000000000049aba5 <+21>: movabs $0x0,%r11
0x000000000049abaf <+31>: callq 0x5f7878 <__morestack>
0x000000000049abb4 <+36>: retq
0x000000000049abb5 <+37>: push %rbp
0x000000000049abb6 <+38>: mov %rsp,%rbp
0x000000000049abb9 <+41>: sub $0x40,%rsp
0x000000000049abbd <+45>: mov %cl,%al
0x000000000049abbf <+47>: mov %rsi,-0x8(%rbp)
0x000000000049abc3 <+51>: mov %rdx,-0x10(%rbp)
0x000000000049abc7 <+55>: mov %al,-0x11(%rbp)
0x000000000049abca <+58>: mov -0x8(%rbp),%rsi
0x000000000049abce <+62>: callq 0x49ac40 <_ZN4cast9transmute19h8233497646bb7a4da94v0.0E>
0x000000000049abd3 <+67>: mov %rax,-0x20(%rbp)
0x000000000049abd7 <+71>: mov -0x10(%rbp),%rsi
0x000000000049abdb <+75>: callq 0x49aae0 <_ZN4cast9transmute19hd6b1be874b626d76a54v0.0E>
0x000000000049abe0 <+80>: mov %rax,-0x28(%rbp)
0x000000000049abe4 <+84>: mov -0x11(%rbp),%r8b
0x000000000049abe8 <+88>: test %r8b,%r8b
0x000000000049abeb <+91>: mov %r8b,-0x29(%rbp)
0x000000000049abef <+95>: je 0x49ac32 <_ZN4sync7atomics12atomic_store19h05a0c6a14b8e9ba0a84v0.0E+162>
0x000000000049abf1 <+97>: jmp 0x49abf3 <_ZN4sync7atomics12atomic_store19h05a0c6a14b8e9ba0a84v0.0E+99>
0x000000000049abf3 <+99>: mov -0x29(%rbp),%al
0x000000000049abf6 <+102>: movzbl %al,%ecx
0x000000000049abf9 <+105>: sub $0x1,%ecx
0x000000000049abfc <+108>: mov %ecx,-0x30(%rbp)
0x000000000049abff <+111>: je 0x49ac30 <_ZN4sync7atomics12atomic_store19h05a0c6a14b8e9ba0a84v0.0E+160>
0x000000000049ac01 <+113>: jmp 0x49ac2e <_ZN4sync7atomics12atomic_store19h05a0c6a14b8e9ba0a84v0.0E+158>
0x000000000049ac03 <+115>: mov -0x20(%rbp),%rax
0x000000000049ac07 <+119>: mov -0x28(%rbp),%rcx
=> 0x000000000049ac0b <+123>: mov %rcx,(%rax)
0x000000000049ac0e <+126>: jmp 0x49ac34 <_ZN4sync7atomics12atomic_store19h05a0c6a14b8e9ba0a84v0.0E+164>
0x000000000049ac10 <+128>: mov -0x20(%rbp),%rax
0x000000000049ac14 <+132>: mov -0x28(%rbp),%rcx
0x000000000049ac18 <+136>: mov %rcx,(%rax)
0x000000000049ac1b <+139>: jmp 0x49ac34 <_ZN4sync7atomics12atomic_store19h05a0c6a14b8e9ba0a84v0.0E+164>
0x000000000049ac1d <+141>: mov -0x20(%rbp),%rax
0x000000000049ac21 <+145>: mov -0x28(%rbp),%rcx
0x000000000049ac25 <+149>: xchg %rcx,(%rax)
0x000000000049ac28 <+152>: mov %rcx,-0x38(%rbp)
0x000000000049ac2c <+156>: jmp 0x49ac34 <_ZN4sync7atomics12atomic_store19h05a0c6a14b8e9ba0a84v0.0E+164>
0x000000000049ac2e <+158>: jmp 0x49ac1d <_ZN4sync7atomics12atomic_store19h05a0c6a14b8e9ba0a84v0.0E+141>
0x000000000049ac30 <+160>: jmp 0x49ac03 <_ZN4sync7atomics12atomic_store19h05a0c6a14b8e9ba0a84v0.0E+115>
0x000000000049ac32 <+162>: jmp 0x49ac10 <_ZN4sync7atomics12atomic_store19h05a0c6a14b8e9ba0a84v0.0E+128>
0x000000000049ac34 <+164>: add $0x40,%rsp
0x000000000049ac38 <+168>: pop %rbp
0x000000000049ac39 <+169>: retq
End of assembler dump.
(gdb) info registers
rax 0x78a3417000007fa7 8692863655047364519
rbx 0x7fa780003bb0 140357383764912
rcx 0x7fa778836dd0 140357258145232
rdx 0x7fa778836dd0 140357258145232
rsi 0x7fa778836dd0 140357258145232
rdi 0x78a3417000007fa7 8692863655047364519
rbp 0x7fa780202ac0 0x7fa780202ac0
rsp 0x7fa780202a80 0x7fa780202a80
r8 0x1 1
r9 0x101010101010101 72340172838076673
r10 0x7 7
r11 0x7fa7902b78ba 140357655034042
r12 0x7fa7859f5ae0 140357478079200
r13 0x7fa780003f50 140357383765840
r14 0x7fa780203e38 140357385862712
r15 0x7fa7859f5ab8 140357478079160
rip 0x49ac0b 0x49ac0b <sync::atomics::atomic_store::h05a0c6a14b8e9ba0a8::v0.0+123>
eflags 0x10246 [ PF ZF IF RF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
(gdb)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment