x86-64 주처리장치 CPU는 64비트 값을 저장할 수 있는 16개의 범용 레지스터를 보유하고 있다. 이들 레지스터는 정수 데이터와 포인터를 저장하는 데 사용한다. 각 레지스터의 이름은 역사적인 진화과정의 이유로 이름이 정해졌다.
위 이미지에서 볼 수 있듯이 중첩된 상자들이 있고, 이는 인스트럭션들이 16개의 레지스터 하위 바이트들에 저장된 다양한 크기의 데이터를 연산할 수 있다는 말이다. 바이트수준 연산들은 가장 덜 중요한 바이트에 대해 연산을 할 수 있으며, 16비트 연산들은 가장 덜 중요한 2바이트에 접근하고, 32비트 연산은 덜 중요한 4바이트에, 64비트 연산은 레지스터 전체에 접근할 수 있다. 그리고 그림의 오른쪽에 기입된것처럼 일반적인 프로그램에서 서로 다른 레지스터들은 서로 다른 목적으로 이용된다. 이들 중 가장 특이한 점은 스택 포인터 %rsp로 런타임 스택의 끝 부분을 가리키기 위해 사용된다는 점이다.
대부분의 인스트럭션은 하나 이상의 오퍼랜드를 가진다. (오퍼랜드는 피연산자라는 뜻이고 처리될 데이터 그 자체 또는 데이터를 지정하는 컴퓨터 명령어의 일부를 의미한다. 출처 : http://www.terms.co.kr/operand.htm) 오퍼랜드는 연산을 수행할 소스 값과 그 결과를 저장할 목적지의 위치를 명시한다.
그래서 여러가지 오퍼랜드의 종류는 세가지 타입으로 구분할 수 있다.
$
기호 다음에 C표준 서식을 사용하는 정수이다.