x86-64 Assembly Language Programming with Ubuntu (Jorgensen)
- Page ID
- 19854
The purpose of this text is to provide a reference for University level assembly language and systems programming courses. Specifically, this text addresses the x86-64 instruction set for the popular x86-64 class of processors using the Ubuntu 64-bit Operating System (OS). While the provided code and various examples should work under any Linux-based 64-bit OS, they have only been tested under Ubuntu 14.04 LTS (64-bit). The x86-64 is a Complex Instruction Set Computing (CISC) CPU design. This refers to the internal processor design philosophy. CISC processors typically include a wide variety of instructions (sometimes overlapping), varying instructions sizes, and a wide range of addressing modes. The term was retroactively coined in contrast to Reduced Instruction Set Computer (RISC).
- Front Matter
- 1: Introduction
- 2: Architecture Overview
- 3: Data Representation
- 4: Program Format
- 5: Tool Chain
- 6: DDD Debugger
- 7: Instruction Set Overview
- 8: Addressing Modes
- 9: Process Stack
- 10: Program Development
- 11: Macros
- 12: Functions
- 13: System Services
- 14: Multiple Source Files
- 15: Stack Buffer Overflow
- 16: Command Line Arguments
- 17: Input/Output Buffering
- 18: Floating-Point Instructions
- 19: Parallel Processing
- 20: Interrupts
- 21: Appendices
- Back Matter
Thumbnail: Computer Chip (Unsplash License; Brian Kostiuk via Unsplash).