| 명령어 | 설명 |
|---|---|
MOV | 데이터 이동 (복사) |
XCHG | 두 피연산자 값을 교환 |
LEA | 주소를 계산하여 레지스터에 저장 (Load Effective Address) |
PUSH | 스택에 값 저장 |
POP | 스택에서 값 꺼냄 |
| 명령어 | 설명 |
|---|---|
ADD | 덧셈 |
SUB | 뺄셈 |
INC | 1 증가 |
DEC | 1 감소 |
MUL | 곱셈 (부호 없음) |
IMUL | 곱셈 (부호 있음) |
DIV | 나눗셈 (부호 없음) |
IDIV | 나눗셈 (부호 있음) |
NEG | 부호 반전 (음수로 만듦) |
CMP | 비교 (결과는 플래그로 저장됨) |
| 명령어 | 설명 |
|---|---|
AND | 비트 AND |
OR | 비트 OR |
XOR | 비트 XOR (같으면 0, 다르면 1) |
NOT | 비트 반전 |
SHL | 왼쪽 시프트 (곱셈 효과) |
SHR | 오른쪽 시프트 (나눗셈 효과) |
SAR | 부호 유지하며 오른쪽 시프트 |
ROL | 왼쪽으로 순환 시프트 |
ROR | 오른쪽으로 순환 시프트 |
| 명령어 | 설명 |
|---|---|
JMP | 무조건 점프 |
JE / JZ | 비교 결과가 0일 때 점프 (같음) |
JNE / JNZ | 비교 결과가 0이 아닐 때 점프 (다름) |
JG / JNLE | 크다 (signed) |
JL / JNGE | 작다 (signed) |
JGE | 크거나 같다 |
JLE | 작거나 같다 |
JC | 캐리 플래그가 설정되면 점프 |
JNC | 캐리 플래그가 없을 때 점프 |
CALL | 서브루틴 호출 |
RET | 서브루틴 복귀 |
LOOP | 카운트 레지스터가 0이 될 때까지 루프 |
| 명령어 | 설명 |
|---|---|
CALL | 함수 호출 (주소 스택에 저장 후 점프) |
RET | 함수 복귀 |
PUSH | 스택에 값 저장 |
POP | 스택에서 값 꺼냄 |
ENTER | 함수 진입 시 스택 프레임 설정 |
LEAVE | 함수 종료 시 스택 프레임 해제 |
| 레지스터 | 설명 |
|---|---|
EAX | 누산기 (연산 결과 저장) |
EBX | 베이스 레지스터 |
ECX | 카운터 레지스터 (루프 등) |
EDX | 데이터 레지스터 |
ESI | 소스 인덱스 |
EDI | 목적지 인덱스 |
ESP | 스택 포인터 |
EBP | 베이스 포인터 (스택 프레임) |
EIP | 명령어 포인터 (다음 명령어 주소) |
FLAGS | 상태 플래그 레지스터 |