views:

1908

answers:

5

I'm trying to find some references in regards to x86 Assembly languages. Tutorials/Examples to help my understanding. -Thanks

+4  A: 
wbowers
yea, I've been reading the x86 wikibook
Dacto
+3  A: 

The best, most comprehensive source of Assembly I've seen is the "Art of Assembly Language" book. It's a free download, in several versions.

idan315
if you're really interested in learning assembler then you'd know that anything that uses "high level assembly" is a waste of time, skip this book and look for something that will teach you the low level assembly.Assembly Language for Intel-Based Computers by Kip Irvine is a pretty decent book
nelsonslament
+1  A: 

I recommend Roby's PC Assembly Tutorial Lesson. It's also available for download. It contains diagrams and examples.

"This assembly lesson is for x86 specific, i.e. for Intel 8088, 80286, 80386, etc. Yes, it is compatible with your Pentium or Pentium III. AMD users could also use this tutorial as well because I cover only the basics. I assume that you have some grasp on some programming language like Pascal, C or C++. I don't want to go over the basic concepts of programming all over again."

  • Preliminary lesson -- Low Level Basic Concepts
    Talks about registers, flags, memory, stacks, and interrupts. Don't worry about that too much. You might be confused with so many concepts. However, as you follow the lesson, I think every concepts should be clear enough.
  • Chapter 1 -- COM program structure
    Begin your journey in assembly by observing the simplest program structure.
  • Chapter 2 -- Variables in Assembly
    Discover the unique concept of variables in assembly language. The notion is far different than that of the normal high level programming language. I also explain how mov instruction works.
  • Chapter 3 -- Arithmetic Instructions
    How can we perform some arithmetic in assembly?
  • Chapter 4 -- Bitwise Logic, part 1
    Using and, or, and xor to perform various logical tasks, including bit masking and flipping.
  • Chapter 5 -- Bitwise Logic, part 2
    Bit shifting and rolling can be useful in aiding bit masking set forth in the next chapter.
  • Chapter 6 -- Branching
    Branch is essential for all programs. Let's try some assembly branching instructions to improve the logic of our programs.
  • Chapter 7 -- Loop
    The loop instruction in assembly can be useful to resemble higher level programming language construct.
  • Chapter 8 -- Interrupt Essentials
    Using common system interrupt services to do screen output and takes input.
  • Chapter 9 -- Stacks Using push and pop and knowing how the stack behaves. Some details about tiny memory mode is explained here.
  • Chapter 10 -- Making Subroutines
    Using subroutines to mimic structured programming approach.
  • Chapter 11 -- Macros
    Using macros.
  • Chapter 12 -- Array Access
    See how assembly provides a very crude array access instructions.
  • Chapter 13 -- Basic String Instructions
    Using various string instructions: movs, lods, cmps, scas, and stos.
  • Chapter 14 -- Structures
    Using structures like the ones in high-level languages. The structure in assembly is equivalent to struct in C/C++ and record in Pascal.
  • Chapter 15 -- A Bit of Theory
    Addressing modes and memory modes explained plus Computer Architecture 101.
splattne
+2  A: 

For reference, the Intel IA-32 reference manuals are the definitive source.

Paul Nathan
IIRC there is a IA-32 only version of those PDF's (I've got a copy at home). does anyone know where there is a link to them?
BCS
A: 

I find that Professional Assembly Language to be a good start.

Calyth