Rod Pemberton mentioned:
>>>> 'scuse me, but why are you _shocked_?
>>>> DS doesn't _have_ 32 bits to push.
>>> Um..., it does push 32-bits for all three cpu's: ds plus
>>> 16-bit zero for two and ds and lower 16-bits eflags for one.
>>> Oh, sorry, my mistake. I should've said "I'm _shocked_
>>> ... it doesn't push 32-bit value equivalent to ds for... "
....
Yeah, my old K7's show that the friendly manual stays correct
when it states an "undefined" highword for a push32 segreg, pop32 GPreg
sequence similar to as it does by any 'load r/m32,segreg'.
So in general we better don't rely on the high 16-bits of a pushed
segreg, regardless of the perhaps different behaviour of CPUs.
But anyway:
push word xx
push word ds
pop dword eax
will always (even interrupted inbetween) result in a 'xx:ds' in eax.
__
wolfgang


|