[comp.sys.ibm.pc] 286 protected virtual address mode

crum@utah-cs.UUCP (01/26/87)

Which assemblers support the complete 80286 instruction set?  IBM MASM 2.00
supports only the real address mode subset of the 80286 instruction set,
according to page 1-20 of its reference manual.

sns@tybalt.caltech.edu.UUCP (01/26/87)

The assembler will, of course, only support the mode that it can access.  DOS
can not (as of ver 3.x) access the proteced mode, so having the assembler
support it would be foolish.  Xenix, which works in protected mode, supports
the protected mode commands, but not the real mode.  You don't get both in
either, because of the way the chip is designed.  When DOS 5.x comes out
(if it ever does), it will support multi-tasking & multi-users, then it will
support the protected mode and not the real.

My cat can quack, can yours?		genghis!root@csvax.Caltech.Edu.UUCP

ballou@brahms.Berkeley.EDU.UUCP (01/27/87)

>The assembler will, of course, only support the mode that it can access.  DOS
>can not (as of ver 3.x) access the proteced mode, so having the assembler
>support it would be foolish.

 	1)  Why would it be foolish?  Allow me to clarify your usage of the
expression 'access the protected mode.'  It is true that DOS does not run
in protected mode.  However, it is still quite possible to put the 80286 into
protected mode from DOS; you (simply?) have had to set up your own operating
system while in real mode to deal with the fact that you make a clean break
once you set the protected mode bit in the MSW.  Why would it be foolish to
have an assembler assemble protected mode instructions?  Let me also point
out that there are programs which start out running under DOS but which
use protected mode of the 80286, e.g., Gold Hill Common Lisp Development
System.

	2)  Please note also that the latest version of the Microsoft Macro
Assembler accepts 80286 protected mode instructions.

>			 Xenix, which works in protected mode, supports
>the protected mode commands, but not the real mode.  You don't get both in 
>either, because of the way the chip is designed.

	Excuse me, but this is a crock.  The protected mode instruction set
is a superset of the real mode instruction set.  The main difference between
protected mode operation and real mode operation is that segment
registers have a different meaning.  Instead of containing a paragraph
index which refers to an absolute location of memory, they contain
segment selectors, which are indices into either the GDT (Global
Descriptor Table) or the LDT (Local Descriptor Table).  These table
entries contain information the processor uses in handling segments,
notably the type of the segment, read/write permission, access
permission, and whether the segment is present in memory.  Note that
this is one of the big obstacles to simply setting up table entries to
DOS and using DOS routines in protected mode.  In order to preserve
user registers, DOS accesses data using a CS segment override prefix.
This works fine in real mode, but since code segments are not writable
in protected mode, the 80286 responds to this with a protection exception.

--------
Kenneth R. Ballou			ARPA:  ballou@brahms.berkeley.edu
Department of Mathematics		UUCP:  ...!ucbvax!brahms!ballou
University of California
Berkeley, California  94720

rde@ukc.UUCP (01/27/87)

In article <1606@cit-vax.Caltech.Edu> sns@tybalt.caltech.edu.UUCP (Samuel N. Southard) writes:
>The assembler will, of course, only support the mode that it can access. 
 ......

A  sweeping statement! What about someone who's developing a stand alone
application using DOS as a development system? They'll  need  access  to
all the opcodes (potentially).

Obviously Microsoft agree. Version 4 (and 3, I believe) of MASM supports
all  286  mnemonics,  although there is an assembler directive to enable
the privileged ones, so the average programmer doesn't use them  without
meaning to.
-- 
           Bob Eager

           rde@ukc.UUCP
           rde@ukc
           ...!mcvax!ukc!rde

           Phone: +44 227 66822 ext 7589

kds@mipos3.UUCP (01/28/87)

In article <1606@cit-vax.Caltech.Edu> sns@tybalt.caltech.edu.UUCP (Samuel N. Southard) writes:
>The assembler will, of course, only support the mode that it can access.  DOS

this is, of course, a silly argument.  Even if you couldn't get to protected 
mode from DOS, this is no reason why the assembler couldn't generate the
opcodes.  You can, of course, go back and forth from protected mode and real
mode on the pc-at and its clones using the reset function in the 8042.
-- 
The above views are personal.

The primary reason innumeracy is so pernicious is the ease with which numbers
are invoked to bludgeon the innumerate into dumb acquiescence.
			- John Allen Paulos

Ken Shoemaker, Microprocessor Design, Intel Corp., Santa Clara, California
uucp: ...{hplabs|decwrl|amdcad|qantel|pur-ee|scgvaxd|oliveb}!intelca!mipos3!kds
csnet/arpanet: kds@mipos3.intel.com