Ich habe den folgenden einfachen CodeBuffers auf dem Stapel in Assembly
void test() {
char buffer[20];
return 0;
}
int main() {
test();
}
Die Montage ist es gibt
Disassembly des Abschnitts .text:
0000000000000000 <test>:
0: 55 push %rbp
1: 48 89 e5 mov %rsp,%rbp
4: 5d pop %rbp
5: c3 retq
0000000000000006 <main>:
6: 55 push %rbp
7: 48 89 e5 mov %rsp,%rbp
a: b8 00 00 00 00 mov $0x0,%eax
f: e8 00 00 00 00 callq 14 <main+0xe>
14: 5d pop %rbp
15: c3 retq
ich mutmaßen I den Puffer Größe von dieser Versammlung? Es scheint nicht viel los zu sein mit dem Stack.
Der Compiler optimiert das lokale, da es nicht referenziert wird. Versuche etwas damit zu machen. –
Bingo 4: c6 45 e0 63 movb $ 0x63, -0x20 (% rbp), aber was bedeutet dieser Befehl eigentlich? -0x20 +% rpb = 0x63? – flyinghigh
Sie haben vermutlich 'buffer [x] = 99;' oder ähnliches geschrieben. – Jester