newroot
12.06.2001, 20:22
ausscnitt aus p49-1
void function(int a, int b, int c) {
char buffer1[5];
char buffer2[10];
}
void main() {
function(1,2,3);
}
beim debuggen auf einem debian linux gcc 2.95.2 :
Dump of assembler code for function main:
0x80481bc <main>: push %ebp
0x80481bd <main+1>: mov %esp,%ebp
0x80481bf <main+3>: sub $0x8,%esp
0x80481c2 <main+6>: add $0xfffffffc,%esp
0x80481c5 <main+9>: push $0x3
0x80481c7 <main+11>: push $0x2
0x80481c9 <main+13>: push $0x1
0x80481cb <main+15>: call 0x80481b4 <function>
0x80481d0 <main+20>: add $0x10,%esp
0x80481d3 <main+23>: leave
0x80481d4 <main+24>: ret
End of assembler dump.
schon seit einiger zeit beschaeftigt mich die frage warum
an main+3 werden 8 byte
und an main+6 nochmal 4 resaviert werden
dabei sind doc keine localen variablen vorhanden.
void function(int a, int b, int c) {
char buffer1[5];
char buffer2[10];
}
void main() {
function(1,2,3);
}
beim debuggen auf einem debian linux gcc 2.95.2 :
Dump of assembler code for function main:
0x80481bc <main>: push %ebp
0x80481bd <main+1>: mov %esp,%ebp
0x80481bf <main+3>: sub $0x8,%esp
0x80481c2 <main+6>: add $0xfffffffc,%esp
0x80481c5 <main+9>: push $0x3
0x80481c7 <main+11>: push $0x2
0x80481c9 <main+13>: push $0x1
0x80481cb <main+15>: call 0x80481b4 <function>
0x80481d0 <main+20>: add $0x10,%esp
0x80481d3 <main+23>: leave
0x80481d4 <main+24>: ret
End of assembler dump.
schon seit einiger zeit beschaeftigt mich die frage warum
an main+3 werden 8 byte
und an main+6 nochmal 4 resaviert werden
dabei sind doc keine localen variablen vorhanden.