이 책에서는 x86 계열의 마이크로프로세서에서 쓰이는 어셈블리어를 다룬다. x86 어셈블리어 프로그래밍을 비롯하여 x86 계열 프로세서의 역사와 기본 아키텍쳐 등을 가르치는 것이 목적이다.

본 책에서 x86은 x86 기반의 프로세서 전범위를 지칭한다. (1978년 발표된 인텔 8086 이후의 것) 여기에는 다음과 같은 것들이 포함된다.

  • IA-32 어셈블리 (인텔 아키텍쳐 32비트, 인텔 80386 이후의 것), x86-32로도 흔히 불린다. 기존의 16비트 인텔 x86 프로세서 아키텍쳐(인텔 8086 - 80286 CPU에서 사용)의 32비트 확장이며, 16비트 x86에 완벽히 호환된다.
  • x86-64. AMD64 또는 AMD 64비트 확장으로도 불리우며, 32비트 코드에 성능 손실 없이 호환된다.
  • 인텔 64. IA-32e 또는 EM64T로도 불리었으며, x86-64와 거의 동일하다.

본 책에서는 위의 용어들을 적절히 혼용하며 사용할 것이다.

목차

+/-
들어가기
기초 FAQ

x86 기초

+/-
x86 계열
x86 아키텍쳐와 레지스터
코멘트
16, 32, 64비트
기본 자료형

x86 명령어 집합

+/-
x86 명령어
데이터 이동 명령어
제어흐름 명령어
산술연산 명령어
논리연산 명령어
시프트연산과 회전연산 명령어
기타 명령어
x86 인터럽트

문법과 어셈블러

+/-
x86 어셈블러
GAS 문법
MASM 문법
HLA 문법
FASM 문법
NASM 문법

확장 명령어

+/-
확장 명렁어
부동소수점
MMX
SSE
AVX, AVX2, FMA3, FMA4
3DNow!

고급 x86

+/-
고급 x86
고급언어
기계어 변환
보호모드
GDT
고급 인터럽트
부트로더
디버그 정보

x86 칩셋

+/-
x86 칩셋
직접 메모리 접근
PIC
PIT
프로그래머블 병렬 인터페이스