Wenn ich main bricht, sieht es so aus, als wäre die fettgedruckte Zeile, wo ich erstellt und initialisiert werde. Ich denke, dass ich alles falsch mache, ich versuche, x86_64 Assembly aus einem Buch zu untersuchen, das x86 erklärt. Das scheint merkwürdig und ich bin mir ziemlich sicher, dass ich es nicht verstehe, wenn ich sehe, wie er in diesem Buch sagt, dass er sich auf ein Wort und ein Wort als 4 Bytes beziehen wird. Wenn ich eine Erklärung bekommen könnte, um meine Unkenntnis zu unterstützen, würde es sehr geschätzt werden. Zum ersten Mal lernen Assembly, ist dies eine Wortgröße ist 8 Bytes?
(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>
Wie haben Sie daraus abgeleitet, dass eine Wortgröße 8 Bytes beträgt? – ScarletAmaranth
Da der Prozessor 64 Bit ist, würde ich sagen, dass das Wort 64 Bit lang ist, wie durch die Adressen auf der linken Seite bestätigt. Dann, ja, ein Wort ist 8 Bytes. Vielleicht bezieht sich Ihr Buch auf einen 32-Bit-Prozessor. – HAL9000
@ HAL9000 Wort ist 64 Bit lang? nope.jpg – ScarletAmaranth