ADD und SUB (x86)

21/10/2007 - 11:37 von Daniel Kruge | Report spam
Hallo NG!

Gerade habe ich mal im Assemblercode meines C-Compilers entdeckt,
dass der Compiler das Stackframe immer wie folt anlegt:

push %ebp
mov %esp, %ebp
add $-8, %esp
...

Nun frage ich mich, ob es nicht einen speziellen Grund hat,
dass er nicht 'sub $8, %esp' kodiert. Hat das einen Grund?


lg, DK
 

Lesen sie die antworten

#1 Stefan Reuther
21/10/2007 - 14:30 | Warnen spam
Daniel Kruge wrote:
push %ebp
mov %esp, %ebp
add $-8, %esp
...
Nun frage ich mich, ob es nicht einen speziellen Grund hat,
dass er nicht 'sub $8, %esp' kodiert. Hat das einen Grund?



Vielleicht den, dass 'add $-128, %esp' kürzer ist als 'sub $128, %esp'
(83c480 vs. 81ec80000000). Das gilt aber ausschließlich für Stackframes
der Größe 128.


Stefan

Ähnliche fragen