When I break main it looks like the bold line is where i is being created and initialized. I think I'm going at this all wrong, I'm trying to examine x86_64 assembly from a book that is explaining x86. This seems weird and I'm pretty sure I just don't understand seeing as in this book he says he'll refer to a word and dword as 4-bytes. If I could get an explanation to aid my incognisance it would be greatly appreciated.
(gdb) list 1 #include <stdio.h> 2 3 int main() 4 { 5 int i; 6 for(i=0; i < 10; i++) 7 { 8 printf("Hello, world!\n"); 9 } 10 return 0; (gdb) disassemble main Dump of assembler code for function main: 0x0000000100000f10 <+0>: push rbp 0x0000000100000f11 <+1>: mov rbp,rsp 0x0000000100000f14 <+4>: sub rsp,0x10 0x0000000100000f18 <+8>: mov DWORD PTR [rbp-0x4],0x0 0x0000000100000f1f <+15>: mov DWORD PTR [rbp-0x8],0x0 0x0000000100000f26 <+22>: cmp DWORD PTR [rbp-0x8],0xa 0x0000000100000f2d <+29>: jge 0x100000f54 <main+68> 0x0000000100000f33 <+35>: lea rdi,[rip+0x48] # 0x100000f82 0x0000000100000f3a <+42>: mov al,0x0 0x0000000100000f3c <+44>: call 0x100000f60 0x0000000100000f41 <+49>: mov DWORD PTR [rbp-0xc],eax 0x0000000100000f44 <+52>: mov eax,DWORD PTR [rbp-0x8] 0x0000000100000f47 <+55>: add eax,0x1 0x0000000100000f4c <+60>: mov DWORD PTR [rbp-0x8],eax 0x0000000100000f4f <+63>: jmp 0x100000f26 <main+22> 0x0000000100000f54 <+68>: mov eax,0x0 0x0000000100000f59 <+73>: add rsp,0x10 0x0000000100000f5d <+77>: pop rbp 0x0000000100000f5e <+78>: ret End of assembler dump. </code>
<+8>: mov DWORD PTR [rbp-0x4],0x0
<+15>: mov DWORD PTR [rbp-0x8],0x0
– Suspicion