A fundamental introduction to x86 assembly prorgamming - Project Nayuki (HTML)

"The faker's guide to reading (x86) assembly language"

"The Art of Assembly Language", in several editions:
* Windows or PDF
* Linux or PDF
* DOS (16-bit) or PDF
* alternative link: The Art of Assembly Language (2003) - Randall Hyde (PDF)

"How to read assembly language"

Collection of ASM resources (source to some of the above; this page has non-x86 resources on it, as well, which I'd like to extract and put into other research notes pages)

"Metaprogramming in Flat Assembler": Demonstrating FASM (flat assembler) macros, which are pretty powerful, it seems.


Assembly tutorial for DOS also available in a full list at CodeProject: The Intel Assembly Manual


Linux Assembly HOWTO | List of Linux/i386 system calls | Another list of Linux/i386 system calls | Linux Kernel Internals | Using the GNU Assembler


Assembler relaxation

Displaying all argv in x64 assembly

Gentle Introduction to x86-64 Assembly

Introduction to x64 Assembly

Processor Architecture
x86-32 and x86-64: Architecture, Instructions, Annotated Disassembly

Redundancy of x86 Machine Code

Stack frame layout on x86-64

The x86 architecture is the weirdo

Trivia Questions for X86 Nerds

Understanding the x64 code models

Where the top of the stack is on x86

Windows x64 ABI
Part 1: Intro to the Windows x64 calling convention
Part 2: Stack frames




NASM Assembly Language Tutorials -

Introductory Intel x86: Architecture, Assembly, Applications, & Alliteration

Intermediate Intel x86: Architecture, Assembly, Applications, & Alliteration

Introduction To Reverse Engineering Software

Learning assembly for linux-x64


Assembly Language (x86) Resources

Useful assembly links


Agner Fog: Software optimization resources
1. Optimizing software in C++: An optimization guide for Windows, Linux and Mac platforms
2. Optimizing subroutines in assembly language: An optimization guide for x86 platforms
3. The microarchitecture of Intel, AMD and VIA CPUs: An optimization guide for assembly programmers and compiler makers
4. Instruction tables: Lists of instruction latencies, throughputs and micro-operation breakdowns for Intel, AMD and VIA CPUs
5. Calling conventions for different C++ compilers and operating systems

AMD64 Application Binary Interface (ABI)

Assembly Optimization Tips

Assembler x86 (FPU, MMX, SSE, SSE2, SSE3, SSSE3, SSE4, AVX, AVX2, AVX512)

Brennan's Guide to Inline Assembly
AT&T/UNIX syntax <-> Intel syntax

Chess Programming Wiki - Hardware: x86-64

CPU: Intel® 64 and IA-32 Architectures Software Developer Manuals

CPU: Developer Guides, Manuals & ISA Documents


Instruction latencies and throughput for AMD and Intel x86 processors

Inline assembly for x86 in Linux

Inline assembly (linux-insides)

Intel Intrinsics Guide

Linux Assembly HOWTO

OS Development Wiki -- "The world's leading source for technical x86 processor information"

Stack Overflow: 'x86' tag wiki

Stack Overflow: Documentation - Intel x86 Assembly Language & Microarchitecture

The Minimal 80x86 Instruction Set
Appendix A of Write Great Code, Volume 2:

The Netwide Assembler: NASM
Chapter 11: Writing 64-bit Code (Unix, Win64)
Links to the latest versions:

Wikipedia: x86 assembly topics

x86 Encoding Cheat Sheet

x86 Instruction Set Reference

x86 intrinsics cheat sheet
A cheat sheet containing most x86 intrinsics, like SSE and AVX intrinsics, grouped in an intuitive fashion

x86, x64 Instruction Latency, Memory Latency and CPUID dumps

x86_64 NASM Assembly Quick Reference ("Cheat Sheet")

X86-64 Instruction Encoding

X86 Opcode and Instruction Reference

x86 Opcode Structure and Instruction Overview

x86 oddities


Tags: language   native   assembly   hardware  

Last modified 25 February 2023