어셈블리 언어는 앞서 소개했듯, 컴퓨터의 기계어와 치환되는 언어입니다. 이는 기계어가 여러 종류라면 어셈블리어도 여러 종류여야 함을 의미합니다. 그리고 앞에서 **명령어 집합구조(Instruction Set Architecture, ISA)**를 설명할 때 이야기했듯, CPU에 사용되는 ISA는 IA-32, x86-64, ARM, MIPS 등 종류가 굉장히 다양합니다.
따라서 이들의 종류만큼 많은 수의 어셈블리어가 존재합니다. x64의 세계에는 x64의 어셈블리어가 있고, ARM의 세계에는 ARM의 어셈블리어가 있습니다. 이 언어는 많이 알면 알수록 좋습니다. 그러나 이 로드맵은 x64아키텍처를 대상으로 하기 때문에 x64 어셈블리어만을 소개하겠습니다. 다른 언어들은 다른 로드맵에서 자세히 다룰 기회가 있을 것입니다.
한국어는 주어, 목적어, 서술어 등으로 이뤄진 문법 구조를 갖습니다. 그래서 우리는 어떤 문장을 읽으면 주어가 무엇이고, 목적어가 무엇인지 등을 파악하여 단어들에 문법적 의미를 부여하고, 문장을 이해합니다. 그리고 이는 어셈블리 언어도 마찬가지입니다.
x64 어셈블리 언어는 우리가 사용하는 한국어보다는 훨씬 단순한 문법 구조를 지닙니다. 이들의 문장은 동사에 해당하는 **명령어(Operation Code, Opcode)**와 목적어에 해당하는 **피연산자(Operand)**로 구성됩니다.
