home .. forth .. colorforth mail list archive ..

[colorforth] Intel® Pentium® 4 Processor - Manuals


I have been writing assembly language for x86 processors since the bad
old days (pre-NASM ;) and have long since gone through my apprenticeship
and migrated to the 32-bit world. It is apparent from some of the
rudimentary questions and misunderstandings about the x86 architecture
and instruction sets posted that many of you lack the necessary
documentation. Here it is from the horse's mouth:

  http://developer.intel.com/design/pentium4/manuals/

In addition to the stuff there, try to acquire any and all (hard) copies
of discontinued Intel x86 manuals: the old 16-bit documentation is not
burdened with the _extensive_ protected-mode legalese and is far less
intimidating as a result. Don't despair if you can't get your hands on
the old doc. When you run a 386+ in _flat_ 32-bit protected mode at
priveledge level 0, most of the possible exceptions that clutter the
recent doc simply never occur.

I also recommend tucking in a copy of a 486DX2 or DX4 datasheet: the
instruction set summary is the highest member of the family that even
mentions clock counts for the different instructions! This is for
reference only and misleading in the context of optimal code for
Pentium-class CPUs, where determinism is so circumstantial that Intel
has decided to not even bother publishing clock counts per instruction.
The Optimization Manual takes over at this point.

Finally, I endorse NASM as the absolutely best x86 assembler I have ever
used. Whether you want to write a 16-bit .COM or .EXE program for DOS or
an ELF for Linux, it puts you in the driver's seat. I got my first
experience using the DOS version and am now fully migrated to Linux and
in both environments have successfully generated code to take control of
a PC from the hard disk's MBR onward and boot into an environment of
entirely my own devising with my own 32-bit keyboard, video display,
etc. interface subroutines and interrupts.

NASM is free. It pains me to read about folks struggling with
incompatible syntax trying to get colorforth source to assemble under
substitute assemblers to what Chuck Moore used. Why not cut it over to
NASM and be done with it? For various reasons, I am not offering do it
myself, but I would still like to see it done and believe that it would
benefit the colorforth community by at least providing a common software
development tool. The hardware incompatibilities between different
floppy disk controllers and graphics display chipsets would remain as
implementation issues in any case :(

Best regards,

Myron Plichota
------------------------

To Unsubscribe from this list, send mail to Mdaemon@xxxxxxxxxxxxxxxxxx with:
unsubscribe ColorForth
as the first and only line within the message body
Problems   -   List-Admin@xxxxxxxxxxxxxxxxxx
Main ColorForth site   -   http://www.colorforth.com