1 |
Hallo, |
2 |
|
3 |
Am So, den 14.05.06 um 17:24 schrieb Hans-Werner Hilse: |
4 |
> also, hier der kritische Bereich: |
5 |
> ---snip |
6 |
> pushf |
7 |
> |
8 |
> pushf |
9 |
> pop ax |
10 |
> |
11 |
> popf |
12 |
> ---snip |
13 |
> |
14 |
> Erzeugt hier folgenden Code: 9c 9c 68 58 9d |
15 |
bei mir erzeugt der das: 9c 9c 66 58 9d |
16 |
|
17 |
> Das Problem: die pushf's schieben 32bit auf den Stack, verringern also |
18 |
> den Stack-Pointer jeweils um 4 (256 Byte sind für dieses Programm sehr |
19 |
> großzügig!). D.h., relativ sind wir bei -8. Dann kommt "pop ax", man |
20 |
> beachte: "68" im Code, also Wechsel zu 16bit. D.h., der Stackpointer |
21 |
> erhöht sich nur um zwei. Mit dem nächsten popf ziehst du dann die |
22 |
> oberen 16bit der Flags in die unteren und umgekehrt und hinterläßt |
23 |
> außerdem noch zwei Bytes auf dem Stack. |
24 |
liege ich da falsch in der Annahme das das Präfix zum umschalten von |
25 |
32bit in 16bit nicht 0x68 sondern 0x66 ist. |
26 |
Allerdings kenne ich mich mit Assembler nicht |
27 |
wirklich aus und wäre um eine kleine Aufklärung erfreut und vieleicht |
28 |
noch einen Link zu den Präfixen. |
29 |
|
30 |
Gruß |
31 |
Michael |
32 |
|
33 |
-- |
34 |
gentoo-user-de@g.o mailing list |