A Great Assembler and its Free to try!
(See my Assembly Language Tutorial)

Last Up date: 2005 August 11
Recent changes: Updated 2004 June 8 for www.zyvra.org
Added the link above to my Tutorial. Some of the links below may be dead?
Problems using D86, may have been my Cyrex processor?

I accidentally found Eric's Website and he has written an Assembler A86 and a debugger D86 for the 8086 type machines. He also has versions A386 and D386 that includes the additional instructions up through Pentium III and AMD Athalon's; but those are not shareware.

For my money, Eric is: "The Assembly Man".

I have used Microsoft's MASM which was on a par with EDLIN as an editor. (Both good candidates for the worst possible.) Then I switched to Borland's TASM which was the best I had found, and what I used until essentially a year ago. (TASM put in an IDEAL mode to get around many of the faults of MASM.) I believe the reason so few people are programming in assembly today is because MASM was so bad! I started programming in 1961 and have used assemblers for: Cyclone, IBM 1401, IBM 360, PDP-8 and PDP-11, CDC 3600 1600 and 6600, Interdata 7/16, and Motorola 6800 and 6809. MASM was by far the worst I have seen, bar none. What a shame!

But Eric's A86 is far smaller, far faster, and far easier to use than MASM or TASM. It doesn't need a LINK to produce a .COM program. To create a .COM program using Microsofts assembler you had to run: MASM.EXE then LINK.EXE, and finally EXE2BIN.EXE all of which were insanely complicated. To produce a .EXE using Eric's you do have to run LINK after A86. While A86 is not perfect, it is by far the best assembler I know of for the Intel 8086 and its descendants. A86 still has an ungodly long list of reserved words. Thanks to Intel/Microsoft.

With Eric's assembler you get a good manual, a few sample programs; and some good tips, and wisdom about assembly programming. You can print the manual. It comes with the shareware version! Or, he sells a bound version. (Hey, it is well worth the price; and Eric makes his living doing this. So, try it then buy it.) His manual doesn't go into the details of each instruction. For that you need a reference manual, which Intel has to have but at the moment I don't know the name or price. I have a few links below. Hopefully, somebody will give me some suggestions. The manual I use most is an old October 1979 one from Intel. In those days they were giving them away, but I doubt that is true today.


If anyone wants to really "Program" they need to know their processor. Specifically: Its registers, its instructions and a little about interfacing to the operating system.

Typing the following into Google gets you a lot links to PDF (some HTML) format Intel manuals: Intel Architecture Software Developer's Manual Frankly, I prefer to get information directly from Intel Manuals. That is the source. Other authors can really only paraphrase and confuse.

Here are some interesting links relating mostly to assembly language programming; but I have not given them enough attention to recommend or fault. Many probably go into the confusion of MASM which is painful and unnecessary if you get Eric's assembler and debugger. The following have information about Assembly Language programming.
http://www.programmersheaven.com/zone5/cat21/ is about programming in general. Has some links to Assembly related pages. I think I got to the following from this.
http://webster.cs.ucr.edu/indexIE.html Intro page for a lot of stuff about assembly language.
http://webster.cs.ucr.edu/Page_TechDocs/Doc386/TOC.HTM 80386 data.
http://webster.cs.ucr.edu/Page_TechDocs/Doc386/C17.HTM This has links for details about each of the 80386 instructions. Latter I hope to provide a list of the ones that are used for general programming to distinguish them from the special ones the operating system won't let you use.

Probably best to start programming with a little general knowledge of the 8086/80386 registers. Again I prefer the Intel manuals. And would advise concentrating on the 8086 instructions first. For a couple reasons: A86 (the shareware version) only works for 8086 instructions. 2nd. except when you really need 32 bit registers instead of the 16 bit ones in the 8086 you will find that all the work is done with the 8086 instructions; and a significant part of that is done with the 8-bit registers. The 8086 instructions work exactly the same on all the Intel processors up through the Pentium 4. If you use only the 8086 instructions, your programs will run on any "IBM compatible PC"; even the very first ones. I use the 386 instructions only when there is significant gain using 32-bit registers. At least 95% of my programs don't use any 80368 instructions, although I realize that virtually every PC today has them.

While you can write programs for Windows, it is much easier and simpler to run in a DOS environment which can be under Win 9x or ME. ?? I don't know about Win NT or 2000?

Most programs work on files, and to be sure you know what you are working on and/or creating: I have a few little DOS programs to help examine files FSEE.ZIP. You may want to download and try them.

If you would like source code (that you could assemble with Eric's assembler) for a little program that converts telephone numbers that have text like: 1-800-I fly SWA to all numbers; send me an email and I will send it with a listing in a .ZIP file. The executable: PAN.COM is only 77 bytes long. If you can make it shorter I would be interested.


Contact me at:
My phone #'s
For comments call, or e-mail me. Go to My Home Page or TOP of this page.