
Nguồn ngoài
x86-64 Assembly Language Programming with Ubuntu
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). The x86-64 is a Complex Instruction Set Computing (CISC) CPU design.
- Tác giả
- Ed Jorgensen
- Nhà xuất bản
- University of Navada, Las Vegas
- Nguồn
- LibreTexts
- Giấy phép
- CC BY-NC-SA
- Ngôn ngữ
- EN
- Danh mục
- Công nghệ thông tin
Mục lục· 144 mục
- 01: Introduction
- 1.01: Prerequisites
- 1.02: What is Assembly Language
- 1.03: Why Learn Assembly Language
- 1.04: Additional References
- 02: Architecture Overview
- 2.01: Architecture Overview
- 2.02: Data Storage Sizes
- 2.03: Central Processing Unit
- 2.04: Main Memory
- 2.05: Memory Layout
- 2.06: Memory Hierarchy
- 2.07: Exercises
- 03: Data Representation
- 3.01: Integer Representation
- 3.02: Unsigned and Signed Addition
- 3.03: Floating-point Representation
- 3.04: Characters and Strings
- 3.05: Exercises
- 04: Program Format
- 4.01: Comments
- 4.02: Numeric Values
- 4.03: Defining Constants
- 4.04: Data Section
- 4.05: BSS Section
- 4.06: Text Section
- 4.07: Exercises
- 05: Tool Chain
- 5.01: Assemble Link Load Overview
- 5.02: Assembler
- 5.03: Linker
- 5.04: Assemble Link Script
- 5.05: Loader
- 5.06: Debugger
- 5.07: Exercises
- 06: DDD Debugger
- 6.01: Starting DDD
- 6.02: Program Execution with DDD
- 6.03: Exercises
- 07: Instruction Set Overview
- 7.01: Notational Conventions
- 7.02: Data Movement
- 7.03: Addresses and Values
- 7.04: Conversion Instructions
- 7.05: Integer Arithmetic Instructions
- 7.06: Logical Instructions
- 7.07: Control Instructions
- 7.08: Example Program Sum of Squares
- 7.09: Exercises
- 08: Addressing Modes
- 8.01: Addresses and Values
- 8.02: Example Program List Summation
- 8.03: Example Program Pyramid Areas and Volumes
- 8.04: Exercises
- 09: Process Stack
- 9.01: Stack Example
- 9.02: Stack Instructions
- 9.03: Stack Implementation
- 9.04: Stack Example
- 9.05: Exercises
- 10: Program Development
- 10.01: Understand the Problem
- 10.02: Create the Algorithm
- 10.03: Implement the Program
- 10.04: Test Debug the Program
- 10.05: Error Terminology
- 10.06: Exercises
- 11: Macros
- 11.01: Single-Line Macros
- 11.02: Multi-Line Macros
- 11.03: Macro Example
- 11.04: Debugging Macros
- 11.05: Exercises
- 12: Functions
- 12.01: Updated Linking Instructions
- 12.02: Debugger Commands
- 12.03: Stack Dynamic Local Variables
- 12.04: Function Declaration
- 12.05: Standard Calling Convention
- 12.06: Linkage
- 12.07: Example Statistical Function2 (non-leaf)
- 12.08: Stack-Based Local Variables
- 12.09: Summary
- 12.10: 12.13-Exercises
- 12.11: Argument Transmission
- 12.12: Calling Convention
- 12.13: Example Statistical Function 1 (leaf)
- 13: System Services
- 13.01: Calling System Services
- 13.02: Newline Character
- 13.03: Console Output
- 13.04: Console Input
- 13.05: Section 5-
- 13.06: Section 6-
- 13.7: File Write
- 13.8: File Operations Examples
- 13.9: Exercises
- 14: Multiple Source Files
- 14.01: Section 1-
- 14.02: Section 2-
- 14.03: Section 3-
- 14.04: Section 4-
- 15: Stack Buffer Overflow
- 15.01: Section 1-
- 15.02: Section 2-
- 15.03: Section 3-
- 15.04: Section 4-
- 15.05: Section 5-
- 16: Command Line Arguments
- 16.01: Section 1-
- 16.02: Section 2-
- 16.03: Section 3-
- 16.04: Section 4-
- 16.05: Section 5-
- 17: Input Output Buffering
- 17.01: Section 1-
- 17.02: Section 2-
- 17.03: Section 3-
- 18: Floating-Point Instructions
- 18.01: Section 1-
- 18.02: Section 2-
- 18.03: Section 3-
- 18.04: Section 4-
- 18.05: Section 5-
- 18.06: Section 6-
- 18.7: Floating-Point Calling Conventions
- 18.8: Example Program, Sum and Average
- 18.9: Example Program, Absolute Value
- 18.10: Exercises
- 19: Parallel Processing
- 19.01: Section 1-
- 19.02: Section 2-
- 19.03: Section 3-
- 20: Interrupts
- 20.01: Section 1-
- 20.02: Section 2-
- 20.03: Section 3-
- 20.04: Section 4-
- 20.05: Section 5-
- 21: Appendices
- 21.01: Appendix A - ASCII Table
- 21.02: Appendix B - Instruction Set Summary
- 21.03: Appendix C - System Services
- 21.04: Appendix D - Quiz Question Answers