BM> The ModRegR/m byte does not specify whether the segment is Use16 or
Use32..
BM> The segment declarations determine this, and the assembler would probably
m
BM> use of the address-size and/or operand-size overrides when calling one
type
BM> segment from the other type. I must admit I haven't done much with this,
b
BM> the microprocessor must have some way to tell whether it's running a
Use16
BM> a Use32 segment.
The D bit tells us if we assume 32 bit (=1) or 16 bit (=0). For
real mode and virtual 8086, d is 0 and not changeable (as far as I know).
In win32 programs, you can have both 32 and 16 bit segments requesting
a D bit change (dunno how to do it).
Since my target is DOS/DOS window, I can assume 16bit coding and use
op size overrides for 32 bit encoding.
--- GEcho 1.00
---------------
* Origin: Digital OnLine Magazine! - (409)839-8237 (1:3811/350)
|