TY - BOOK AU - Jorgensen,Ed ED - Open Textbook Library TI - x86-64 Assembly Language Programming with Ubuntu T2 - Open textbook library AV - QA76 CY - Minneapolis, MN PB - Open Textbook Library KW - Computer Science KW - Textbooks KW - Programming Languages N1 - 1.0 Introduction -- 2.0 Architecture Overview -- 3.0 Data Representation -- 4.0 Program Format -- 5.0 Tool Chain -- 6.0 DDD Debugger -- 7.0 Instruction Set Overview -- 8.0 Addressing Modes -- 9.0 Process Stack -- 10.0 Program Development -- 11.0 Macros -- 12.0 Functions -- 13.0 System Services -- 14.0 Multiple Source Files -- 15.0 Stack Buffer Overflow -- 16.0 Command Line Arguments -- 17.0 Input/Output Buffering -- 18.0 Floating-Point instructions -- 19.0 Parallel Processing -- 20.0 Interrupts -- 21.0 Appendix A - ASCII Table -- 22.0 Appendix B - Instruction Set Summary -- 23.0 Appendix C - System Services -- 24.0 Appendix D - Quiz Question Answers N2 - 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) UR - https://open.umn.edu/opentextbooks/textbooks/733 ER -