# x86-64 Assembly Language Programming with Ubuntu

- By: Ed Jorgensen
- Publisher: Ed Jorgensen
- Source: [Open Textbook Library](https://open.umn.edu/opentextbooks/textbooks/x86-64-assembly-language-programming-with-ubuntu)
- Licence: Attribution-NonCommercial-ShareAlike
- PDF: http://www.egr.unlv.edu/~ed/assembly64.pdf

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 (RISC3).

