(gdb) l main
1 #include <stdio.h>
2
3 int main(void)
4 {
5 //int i = 6;
6 printf("%f",6.4);
7 return 0;
8 }
(gdb) disas main
Dump of assembler code for function main:
0x0000000000400498 <main+0>: push %rbp
0x0000000000400499 <main+1>: mov %rsp,%rbp
0x000000000040049c <main+4>: sub $0x10,%rsp
0x00000000004004a0 <main+8>: mov $0x401999999999999a,%rax
0x00000000004004aa <main+18>: mov %rax,-0x8(%rbp)
0x00000000004004ae <main+22>: movsd -0x8(%rbp),%xmm0
0x00000000004004b3 <main+27>: mov $0x4005c8,%edi
0x00000000004004b8 <main+32>: mov $0x1,%eax
0x00000000004004bd <main+37>: callq 0x400398 <printf@plt>
Почему так сложно (я заметил, что сложность вызвана float
)?
Кстати, в чем разница между $0x1
и 0x1
?
(gdb) p 0x10
$4 = 16
(gdb) p $0x10
$5 = void