What you mainly need to know for this course is how to read the assembly language produced by a compiler. We will not be writing programs in assembly language, but we will occasionally mix some assembly language with C in a program. The very best reference for this material is Chapter 3 from the textbook Computer Systems: A Programmer's Perspective, which is on reserve in the library. You can download a sample from their Chapter 3 and you can download the author's lecture notes for that chapter (see "Class 05" through "Class 09"). (You should also take a look at their C Primer.)
The links below describe the syntax for i386 assembly languages (there are, unfortunately, two different syntaxes in use) and the basics of the architecture of an i386 type CPU.
- Intel and AT&T Syntax from Using Assembly Language in Linux
- 3.2.2. What is this AT&T syntax from Linux Assembly HOWTO
- Sample Program from Introduction to Linux Intel Assembly Language
- AT&T Syntax versus Intel Syntax from Using as The GNU Assembler
-
These are references to the assembly language syntax used by the GCC and Lcc-Win32 compilers (called the "AT&T syntax") and how it differs from Intel syntax used by Microsoft's compiler. See also Appendix 1 of the "Lcc-Win32 Technical Reference", by Jacob Navia, that comes with the Lcc-Win32 distribution.
- MSDN - C++ Language Reference - Inline Assembler
- Brennan's Guide to Inline Assembly
- Inline assembly for x86 in Linux
- A Brief Tutorial on GCC inline asm (x86 biased)
- These are references to "inline assembly language" which is the mixing of assembly language source code into the source code of a C program. This is not part of standard C, so every compiler has its own syntax for how to place assembly language into a C source file.
- IA-32 architecture at sandpile.org
- Basic x86 Architecture
- Intel Pentium Instruction Set
- Intel x86 instruction set
- x86 Instruction Set Reference
- IntelCodeTable.pdf
- mnemonix.exe from hutch's Programming Tools
- Opcodes help file from hutch's Assembler References
- 8086 Processor Registers
- IA-32 Intel Architecture Software Developer's Manuals from Intel
- Intel i386 - Wikipedia
- x86 - Wikipedia
- x86 Assembly Language - Wikipedia
- Information about the archtecture of the i386 family of CPU's.
|