Thư viện Trường Đại học Phú Xuân
x86-64 Assembly Language Programming with Ubuntu

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
  1. 01: Introduction
  2. 1.01: Prerequisites
  3. 1.02: What is Assembly Language
  4. 1.03: Why Learn Assembly Language
  5. 1.04: Additional References
  6. 02: Architecture Overview
  7. 2.01: Architecture Overview
  8. 2.02: Data Storage Sizes
  9. 2.03: Central Processing Unit
  10. 2.04: Main Memory
  11. 2.05: Memory Layout
  12. 2.06: Memory Hierarchy
  13. 2.07: Exercises
  14. 03: Data Representation
  15. 3.01: Integer Representation
  16. 3.02: Unsigned and Signed Addition
  17. 3.03: Floating-point Representation
  18. 3.04: Characters and Strings
  19. 3.05: Exercises
  20. 04: Program Format
  21. 4.01: Comments
  22. 4.02: Numeric Values
  23. 4.03: Defining Constants
  24. 4.04: Data Section
  25. 4.05: BSS Section
  26. 4.06: Text Section
  27. 4.07: Exercises
  28. 05: Tool Chain
  29. 5.01: Assemble Link Load Overview
  30. 5.02: Assembler
  31. 5.03: Linker
  32. 5.04: Assemble Link Script
  33. 5.05: Loader
  34. 5.06: Debugger
  35. 5.07: Exercises
  36. 06: DDD Debugger
  37. 6.01: Starting DDD
  38. 6.02: Program Execution with DDD
  39. 6.03: Exercises
  40. 07: Instruction Set Overview
  41. 7.01: Notational Conventions
  42. 7.02: Data Movement
  43. 7.03: Addresses and Values
  44. 7.04: Conversion Instructions
  45. 7.05: Integer Arithmetic Instructions
  46. 7.06: Logical Instructions
  47. 7.07: Control Instructions
  48. 7.08: Example Program Sum of Squares
  49. 7.09: Exercises
  50. 08: Addressing Modes
  51. 8.01: Addresses and Values
  52. 8.02: Example Program List Summation
  53. 8.03: Example Program Pyramid Areas and Volumes
  54. 8.04: Exercises
  55. 09: Process Stack
  56. 9.01: Stack Example
  57. 9.02: Stack Instructions
  58. 9.03: Stack Implementation
  59. 9.04: Stack Example
  60. 9.05: Exercises
  61. 10: Program Development
  62. 10.01: Understand the Problem
  63. 10.02: Create the Algorithm
  64. 10.03: Implement the Program
  65. 10.04: Test Debug the Program
  66. 10.05: Error Terminology
  67. 10.06: Exercises
  68. 11: Macros
  69. 11.01: Single-Line Macros
  70. 11.02: Multi-Line Macros
  71. 11.03: Macro Example
  72. 11.04: Debugging Macros
  73. 11.05: Exercises
  74. 12: Functions
  75. 12.01: Updated Linking Instructions
  76. 12.02: Debugger Commands
  77. 12.03: Stack Dynamic Local Variables
  78. 12.04: Function Declaration
  79. 12.05: Standard Calling Convention
  80. 12.06: Linkage
  81. 12.07: Example Statistical Function2 (non-leaf)
  82. 12.08: Stack-Based Local Variables
  83. 12.09: Summary
  84. 12.10: 12.13-Exercises
  85. 12.11: Argument Transmission
  86. 12.12: Calling Convention
  87. 12.13: Example Statistical Function 1 (leaf)
  88. 13: System Services
  89. 13.01: Calling System Services
  90. 13.02: Newline Character
  91. 13.03: Console Output
  92. 13.04: Console Input
  93. 13.05: Section 5-
  94. 13.06: Section 6-
  95. 13.7: File Write
  96. 13.8: File Operations Examples
  97. 13.9: Exercises
  98. 14: Multiple Source Files
  99. 14.01: Section 1-
  100. 14.02: Section 2-
  101. 14.03: Section 3-
  102. 14.04: Section 4-
  103. 15: Stack Buffer Overflow
  104. 15.01: Section 1-
  105. 15.02: Section 2-
  106. 15.03: Section 3-
  107. 15.04: Section 4-
  108. 15.05: Section 5-
  109. 16: Command Line Arguments
  110. 16.01: Section 1-
  111. 16.02: Section 2-
  112. 16.03: Section 3-
  113. 16.04: Section 4-
  114. 16.05: Section 5-
  115. 17: Input Output Buffering
  116. 17.01: Section 1-
  117. 17.02: Section 2-
  118. 17.03: Section 3-
  119. 18: Floating-Point Instructions
  120. 18.01: Section 1-
  121. 18.02: Section 2-
  122. 18.03: Section 3-
  123. 18.04: Section 4-
  124. 18.05: Section 5-
  125. 18.06: Section 6-
  126. 18.7: Floating-Point Calling Conventions
  127. 18.8: Example Program, Sum and Average
  128. 18.9: Example Program, Absolute Value
  129. 18.10: Exercises
  130. 19: Parallel Processing
  131. 19.01: Section 1-
  132. 19.02: Section 2-
  133. 19.03: Section 3-
  134. 20: Interrupts
  135. 20.01: Section 1-
  136. 20.02: Section 2-
  137. 20.03: Section 3-
  138. 20.04: Section 4-
  139. 20.05: Section 5-
  140. 21: Appendices
  141. 21.01: Appendix A - ASCII Table
  142. 21.02: Appendix B - Instruction Set Summary
  143. 21.03: Appendix C - System Services
  144. 21.04: Appendix D - Quiz Question Answers