Ana devre dışı kaldığımda, kalın çizginin oluşturulduğu ve başlatıldığı yer olduğu anlaşılıyor. Sanırım yanlış anlıyorum, x86_64 derlemesini x86'yı açıklayan bir kitaptan incelemeye çalışıyorum. Bu garip görünüyor ve eminim ki bu kitapta gördüğümü anlamıyorum, bir kelime ve dword'u 4 bayt olarak ifade edeceğini söylüyor. Bilgim olsun diye bir açıklama yapabilseydim, büyük takdir olurdu. İlk kez öğrenme topluluğu, bu kelime büyüklüğü 8 bayt mı?
(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>
Bundan nasıl bir kelime boyutu 8 bayt olduğunu belirlediniz? – ScarletAmaranth
İşlemci 64 bit olduğu için, bu kelimenin soldaki adresler tarafından onaylandığı gibi 64 bit uzunluğunda olduğunu söyleyebilirim. Sonra, evet, bir kelime 8 bayttır. Belki de kitabınız 32 bit işlemci anlamına gelir. – HAL9000
@ HAL9000 word 64 bit uzunluğunda mı? nope.jpg – ScarletAmaranth