PC Assembly Tutorial

My main concern is 80x86 assembly, other machine assemblies are not available for now. If you want to contribute, write me. I use the ideal syntax of Turbo Assembler's. But, you can even write your MASM version easily. I try to drive the basic knowledge of assembly NOT to make a stand-alone assembly, but make a complement for C or Pascal.

I assume all of you have learned either Pascal or C, so that I don't re-explain all the basic concepts of programming. You must know the binary and hexadecimal numbers and bit-wise operation basics (AND, OR, XOR, NOT). I assume all of you have at least 80286 compatible computers as I'm going to implement 80286 instructions directly rather than going through the old 8086's.

Warning : This lesson is NOT intended for beginners. Beginners should learn Pascal or C first. Programming entirely in assembly is a tiresome task while Pascal or C can do the same thing. The need for assembly is SPEED. So, when you feel some procedure or commands that is so time-critical, you need to employ assembly. If not, DON'T !

If you've done through this lesson, you may want to expand your knowledge in advanced topics. These lesson are just the basics. The lesson is broken into two parts :

Lesson 1 Talks about the basics of Assembly.
Register, memory, and interrupt concepts, COM-structure, mov, jmp, and int, compares and conditional jumps, bit-wise operations, arithmatic operations, loopings, addressing modes, string operations, making procedures, macros, structures.
Download here

Lesson 2 Extends your knowledge about Assembly. (Not done yet)
More commands, combining Assembly with Pascal and C/C++, hardware ports, snooping interrupts, IRQs, some 386/486 instructions, DMA basics, EXE-structure, SYS-structure.

Where to go now ?

Back to main tutorial page
Main tutorial page (framed version)
My programming links
Write me

Roby Joehanes, 1997, 2000