TIP: Click on subject to list as thread! ANSI
echo: 80xxx
to: BRIAN MCCLOUD
from: JERRY COFFIN
date: 1997-07-07 09:52:00
subject: encoding instuction [

On (05 Jul 97) Brian McCloud wrote to Cameron Clark...
 BM> The ModRegR/m byte does not specify whether the segment is Use16 or
 BM> Use32...  The segment declarations determine this, and the assembler
 BM> would probably make use of the address-size and/or operand-size
 BM> overrides when calling one type of segment from the other type.
Yes, more or less.  The `D' bit in a segment descriptor is set to 0 to
indicate a USE16 segment, and to 1 to indicate a USE32 segment.
However, calls/jumps between segments in protected mode must go through
a task gate or call gate.  Each gate contains a type field that tells
what sort of gate it is - e.g. a 16 bit call gate is type 4 and a 32 bit
call gate is type C.
Alternatively, you can do intersegment calls by doing a jump directly to
a TSS.  TSS's also have type fields similar to those in gates.
 BM> I must admit I haven't done much with this, but the microprocessor
 BM> must have some way to tell whether it's running a Use16 or a Use32
 BM> segment.
It certainly must, and the D bit in the segment descriptor is it.
    Later,
    Jerry.
... The Universe is a figment of its own imagination.
--- PPoint 1.90
---------------
* Origin: Point Pointedly Pointless (1:128/166.5)

SOURCE: echomail via exec-pc

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.