(Updated February 18, 2025)
Table of Contents
Starting Out With Newer Tech
Hopefully, you’ve arrived here after explaining the first half of this textbook, which is based on the MOS 6502. If you skipped ahead because this is really what you’re interested in, don’t worry. You can learn this assembly language without first understanding the 6502.
The book’s first half is designed as training wheels for those who have never seen assembly language. You’ll probably be okay if you have dabbled in assembly.
What we will reveal in this half is similar to what was presented in the first half. We will begin by understanding the rudiments of writing programs, math, conditionals, loops, printing, etc. We will also cover syscalls and the basics of file handling.
You are expected to be able to operate in a general Linux environment. You can also work on examples at myCompiler. We don’t delve into Windows or Mac specifics regarding syscalls, but adapting the examples to those platforms should not be difficult.
This book doesn’t get into specific instruction sets like SSE, AVX2, AVX-512, AVX10, or APX.
The Intel x86
Okay, this is really about the x86_64. It’s the 64-bit version of the original 8008/8080/8088/8086 CPU, although the x86 moniker implies the original 32-bit version.
The Intel platform’s roots lie in Federico Faggin’s original 4004, which led to the 8008 and the 8080. After the 8080, Faggin founded Zilog and the now-famous Z80 processor, which was a direct competitor to the 8080.
Fast-forward a few iterations, through the 80[1234]86, the SXs and DXs, the Pentium, and even past the ill-fated Itanium, and we land where we are today with the x86_64 platform.
Intel architecture still powers many devices and operating systems today. It was the basis for the original PC and was used in Mac devices after Motorola and before the latest switch to ARM-based Apple silicon.
References
Here are some sites, documents, simulators, and other materials used to create this textbook. Please enjoy.
Online NASM for x86_64
The 4004
A 4004 Emulator
Intel Historical Timeline
The Original Assembly Language with NASM for my Students
JavaScript Intel 8080 Emulator (Including Space Invaders!)
Slatinsky’s x86 Simulator
YJDoc2 8086 Web Emulator