X86 어셈블리/x86 명령어

위키책, 위키책
둘러보기로 이동 검색으로 이동

이 페이지에서는 기본 x86 명령어 집합에서 사용 가능한 다양한 명령어들을 자세히 다룰 것이다. 분량을 줄이기 위하여 명령어들을 그룹 별로 다른 문서에 배치하여 설명하였다.

범례[+/-]

다음 틀은 인자를 필요로 하지 않는 명령어를 표기하기 위해 사용된다:

Instr

다음 틀은 1개의 인자를 갖는 명령어를 표기하기 위해 사용된다:

Instr arg

다음 틀은 2개의 인자를 갖는 명령어를 표기하기 위해 사용된다. 어셈블러에 따라 명령어 포맷이 다름을 주의하라.

Instr src, dest GAS 문법
Instr dest, src Intel 문법

다음 틀은 3개의 인자를 갖는 명령어를 표기하기 위해 사용된다. 어셈블러에 따라 명령어 포맷이 다름을 주의하라.

Instr aux, src, dest GAS 문법
Instr dest, src, aux Intel 문법

접미사[+/-]

특히 유닉스, 리눅스 등과 같은 비윈도 환경에서, 몇몇의 명령어들은 접미사를 붙여 데이터의 크기를 지정해주어야 한다. 가능한 접미사는 다음과 같다:

  • b (byte) = 8비트
  • w (word) = 16비트
  • l (long) = 32비트
  • q (quad) = 64비트

32비트 아키텍쳐에서 mov 명령어를 사용하는 예시로, GAS 문법은 다음과 같다:

    movl $0x000F, %eax          # 값 F를 eax 레지스터에 저장하라.