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