Architecture 1001: x86-64 Assembly

0
Independent
Free Online Course
English
selfpaced

Overview

Intel processors have been a major force in personal computing for more than 30 years. An understanding of low level computing mechanisms used in Intel chips as taught in this course serves as a foundation upon which to better understand other hardware, as well as many technical specialties such as reverse engineering, compiler design, operating system design, code optimization, and vulnerability exploitation.

This class serves as a foundation for the follow on "Architecture 2001: x86-64 OS Internals" class. It teaches the basic concepts and describes the hardware that assembly code deals with. It also goes over many of the most common assembly instructions. Although x86 has hundreds of special purpose instructions, students will be shown it is possible to read most programs by knowing only around 20-30 instructions and their variations.

Syllabus

  1. Introduction
  2. Computer Registers
  3. Your First Instruction: No-Operation (nop)
  4. The Stack
  5. Calling Functions
  6. Local Variables
  7. Function Parameter Passing
  8. Control Flow
  9. Boolean Logic
  10. Bit Shifting
  11. Multiply and Divide
  12. CISC Delight: REPeatable Instructions
  13. Choose Your Own Adventure!
  14. Windows Binary Debugging
  15. Looking at all those examples on Linux!
  16. Learning to Fish: Read The F*n Intel Manual!
  17. Learning to Fish: Writing Inline Assembly
  18. The Most Important Assembly Exercise You'll Ever Do: Binary Bomb Lab
  19. (Optional) Basic Buffer Overflow Lab
  20. Conclusion

Taught by

Xeno Kovah