Intel 80x86 processor's language

An assembler directly maps the CPU's bit-oriented command structure to a readable, mnemotechnical format, so programming in assembler means programming the processor 1:1. This seems to be and often really is quite laborious, but the big effort is that you always have your hands on the real step by step work of your program. If you do not understand what I meant with that, first have a look at newcomer's paragraph.

There's a lot of assembling products with their own "dialects" starting from Microsofts MASM passing by Borlands TASM up to new developed free available ones like FASM and others.
I decided to use NASM together with the very easy to use integrated development environment called NASM-IDE, which is NOT that one available from sourceforge and as the site of the developer Robert Anderton is gone, I offer it here for download without any support or responsibility for error or damage caused of it's use. The IDE has not the best editor in the world as you have to use the "old" control functions, f.i. Shift+Del instead of Ctrl+X, but it works well if configured properly.
Of course you may use any editor of your choice for programming.

I took NASM because it had been chosen for the assembler parts of freeDOS and I like that it has very straight forward syntax characteristics, f.i. you have to use [...] whenever the content of a memory cell is addressed and so you always KNOW what is meant in your coding. (Its a very widespread error confusing the address of a memory cell with its content.)
The disatvantage of this decision is the format incompatibility to the most other assemblers out there, so that I have to adopt most of the code samples that can be found out there.


For test purposes I use the debugger INSIGHT (Version 1.24). It helps a lot to understand step by step any program you're developing.

16 BIT

Another decision I made was to work with the very basic 16-bit-coding of the 80x86, ignoring the step up of Intel's CPU development up to nowadays 64-bit-coding. As the old hardware I use has interfaces that are mostly 8-bit-oriented it is much more simple to use the 16-bit-mode, though a lot of possibilities for complex and secure program operations are not available then.


If you are new to 80x86 assembly programming you have to work through some kind of tutorial you may find on the internet and if you decide to use NASM like me you should have the NASM manual at hand, which I mostly use in its .chm-Form under Windows. But at first you have to understand the CPU, how it its constructed, embedded in the hardware of the mainboard and how it works, not very detailed but so far that you understand it principally.

A very compact overview of the CPU operations you find at Jegerlehner's site for download as a pdf-file - only 2 pages you can print out on one single sheet of paper.

I plan to exemplarily present my own programs and terms of developing here, look at the parallel port project for that, which is my first project with a step by step program implementation.



Last change: May 22, 2011 *** Online since: May 22, 2011 ***

I do not take any responsibility for the content of linked sites.