Kann Bitte jemand Erklärt mit einfache Worten meine frage.....
so , ich habe dieses Programme , die Nummer 1 , 2 , 3 die auf das Programme stehen sind die Break Punkten .Dann Start mit Debugger GDB , dann run AAAA und schreibe x/16xw $esp , und jetzt meine frage.....
was bedeuten was Hinten meine Memory Addresses sind ,
Diesen sind meine Memory Addresses von meine Vier A:
0xbf9bd650:
0xbf9bd660:
0xbf9bd670:
0xbf9bd660:
Aber was sind die Hinten kommen?
0xb76e6ff4 ......
0xb770a7b0 .............
0x08048470 ...........
0x00000002 ........
kann sein das diesen Hex von function1(argv[1]); kommen.....?
So, ich selbe Antworte meine fragen...![]()
Alle Erste Vier Ganz links , sind meine Memory Addresses , sie sind einziger und sie werden benutze durch CPU oder Geräten um Daten zu Verfolgen ..... .
Aber was sind die Hinten kommen? , Sie sind die Assoziativspeicher
So , wo stehe meine function1(argv[1]); ?? , sie ist auf den Assoziativ speicher , sie wurden auf Hexe-Zählen gewechselt . Sie befinde sich auf den Memory Address , 0xbffff500 , meine main Stack Frame ist , was Hinten von Memory Adress stehe , 0xb7ff07b0 0xbffff520 0xbffff578 .
Meine %esp ist 0xb7ff07b0 und meine %ebp ist 0xbffff578 , weil Stack start von niedriger nach Oben.....
aber eine Sache die ich nicht verstand ist , warum bekomme auf zweite Zeile .....soll nicht auf Erste Zeile sein ??
(gdb) x/16xw $esp
0xbffff4f0: 0xb7fccff4 0x08049ff4 0xbffff518 0x08048489
0xbffff500: 0xb7ff07b0 0xbffff520 0xbffff578 0xb7e84775
0xbffff510: 0x08048470 0x08048340 0xbffff578 0xb7e84775
0xbffff520: 0x00000002 0xbffff5a4 0xbffff5b0 0xb7fe0b40
(gdb) x/1xw $ebp
0xbffff508: 0xbffff578