|
楼主 |
发表于 2019-6-19 20:01:29
|
显示全部楼层
Dump of assembler code for function main(int, char const**):
12 {
0x00000000004008c0 <+0>: push %rbp
0x00000000004008c1 <+1>: mov %rsp,%rbp
0x00000000004008c4 <+4>: sub $0x30,%rsp
0x00000000004008c8 <+8>: movabs $0x4009c4,%rax
0x00000000004008d2 <+18>: movl $0x0,-0x4(%rbp)
0x00000000004008d9 <+25>: mov %edi,-0x8(%rbp)
0x00000000004008dc <+28>: mov %rsi,-0x10(%rbp)
13 const char *path = "/tmp/pylearn_";
0x00000000004008e0 <+32>: mov %rax,-0x18(%rbp)
14 DIR *dir = opendir(path);
0x00000000004008e4 <+36>: mov -0x18(%rbp),%rdi
0x00000000004008e8 <+40>: callq 0x400740 <opendir@plt>
0x00000000004008ed <+45>: mov %rax,-0x20(%rbp)
15
16 if (dir == nullptr) {
0x00000000004008f1 <+49>: cmpq $0x0,-0x20(%rbp)
0x00000000004008f6 <+54>: jne 0x400935 <main(int, char const**)+117>
17 const char *error_log = strerror(errno);
0x00000000004008fc <+60>: callq 0x4006e0 <__errno_location@plt>
0x0000000000400901 <+65>: mov (%rax),%edi
0x0000000000400903 <+67>: callq 0x4006f0 <strerror@plt>
0x0000000000400908 <+72>: movabs $0x601080,%rdi
0x0000000000400912 <+82>: mov %rax,-0x28(%rbp)
18 cerr << error_log << endl;
0x0000000000400916 <+86>: mov -0x28(%rbp),%rsi
0x000000000040091a <+90>: callq 0x400720 <_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc@plt>
0x000000000040091f <+95>: movabs $0x400700,%rsi
0x0000000000400929 <+105>: mov %rax,%rdi
0x000000000040092c <+108>: callq 0x400730 <_ZNSolsEPFRSoS_E@plt>
0x0000000000400931 <+113>: mov %rax,-0x30(%rbp)
--Type <RET> for more, q to quit, c to continue without paging--
0x0000000000400935 <+117>: xor %eax,%eax
19 }
20
21 return 0;
0x0000000000400937 <+119>: add $0x30,%rsp
0x000000000040093b <+123>: pop %rbp
0x000000000040093c <+124>: retq
End of assembler dump.
看不懂。。。。 |
|