이것은 X86 어셈블리를 위한 구조화 된 readme이며 실제 예제와 함께 가능한 가장 쉬운 언어로 작성되었습니다. ?
| 인텔 유형 | 비트 | 이름 |
|---|---|---|
| - | 8 비트 | 바이트 |
| 8086 | 16 비트 | 단어 |
| i386 | 32 비트 | dword |
| x86 | 64 비트 | Qword |
dword = dword = (이중 단어)
qword = qword = (쿼드 단어)
32 비트 암 CPU에서 단어는 32 비트입니다.


(Virginia Computer Science University의 오래된 텍스트 (2006), X86 어셈블리를위한 최고의 가이드 중 하나)
현대 (예 : 3 86 이상) x 86 프로세서에는 그림 1과 같이 8 개의 32 비트 범용 레지스터가 있습니다. 레지스터 이름은 대부분 역사적입니다 . 예를 들어, EAX는 여러 산술 작업에 사용 되었기 때문에 Accumulator라고 불렀으며 ECX는 루프 색인을 보유하는 데 사용 되었기 때문에 카운터로 알려져 있습니다. 대부분의 레지스터는 현대의 지시에서 특별한 목적을 잃어버린 반면, 컨벤션별로 두 개는 스택 포인터 (ESP) 와 베이스 포인터 (EBP)와 같은 특별한 목적을 위해 예약되어 있습니다.
EAX , EBX , ECX 및 EDX 레지스터의 경우 하위 섹션이 사용될 수 있습니다. 예를 들어, 가장 유의미한 2 바이트의 EAX 는 AX 라는 16 비트 레지스터로 취급 될 수 있습니다. AX 의 가장 중요한 바이트는 AL 이라는 단일 8 비트 레지스터로 사용될 수있는 반면, AX 의 가장 중요한 바이트는 AH 라는 단일 8 비트 레지스터로 사용할 수 있습니다. 이 이름은 동일한 물리적 레지스터를 나타냅니다. 2 바이트 수량이 DX 에 배치되면 업데이트는 DH , DL 및 EDX 의 값에 영향을 미칩니다. 이 하위 등록은 주로 16 비트 버전의 명령어 세트에서 보류됩니다. 그러나 32 비트보다 작은 데이터 (예 : 1 바이트 ASCII 문자) 를 다룰 때 때때로 편리합니다.
어셈블리 언어의 레지스터를 참조 할 때 이름은 대소 문자를 사용하지 않습니다 . 예를 들어, EAX 및 EAX 이름은 동일한 레지스터 를 나타냅니다.


x86에서 레지스터는 이름 앞에 ' e '가 있습니다.
예 : E AX, E BX, E CX, E DX, E BP
추가 정보 :
x64 에는 대신 ' r '이 있습니다.
예 : R AX, R BX, R CX, R DX, R BP
또한 XMM0에서 XMM15로 이중 정제 플로팅 포인트가 있습니다.

전체 치트 시트 X86 어셈블리, 20 페이지.

