| 명  령  어 | 설                                               명 | |
| Data Transfer | ||
| MOV | Move | 데이터 이동 (전송) | 
| PUSH | Push | 오퍼랜드의 내용을 스택에 쌓는다 | 
| POP | Pop | 스택으로부터 값을 뽑아낸다. | 
| XCHG | Exchange Register/memory with Register | 첫 번째 오퍼랜드와 두 번째 오퍼랜드 교환 | 
| IN | Input from AL/AX to Fixed port | 오퍼랜드로 지시된 포트로부터 AX에 데이터 입력 | 
| OUT | Output from AL/AX to Fixed port | 오퍼랜드가 지시한 포트로 AX의 데이터 출력 | 
| XLAT | Translate byte to  | BX:AL이 지시한 데이블의 내용을 AL로 로드 | 
| LEA | Load Effective Address to Register | 메모리의 오프셋값을 레지스터로 로드 | 
| LDS | Load Pointer to DS | REG←(MEM), DS←(MEM+2) | 
| LES | Load Pointer ti ES | REG←(MEM), ES←(MEM+2) | 
| LAHF | Load AH with Flags | 플래그의 내용을 AH의 특정 비트로 로드 | 
| SAHF | Store AH into Flags | AH의 특정 비트가 플래그 레지스터로 전송 | 
| PUSHF | Push Flags | 플래그 레지스터의 내용을 스택에 쌓음 | 
| POPF | Pop Flags | 스택으로부터 플래그 레지스터로 뽑음 | 
| Arithmetic | ||
| ADD | Add | 캐리를 포함하지 않은 덧셈 | 
| SBB | Subtract with Borrow | 캐리를 포함한 뺄셈 | 
| DEC | Decrement | 오퍼랜드 내용을 1 감소 | 
| NEG | Change Sign | 오퍼랜드의 2의 보수, 즉 부호 반전 | 
| CMP | Compare | 두 개의 오퍼랜드를 비교한다 | 
| ADC | Add with Carry | 캐리를 포함한 덧셈 | 
| INC | Increment | 오퍼랜드 내용을 1 증가 | 
| AAA | ASCII adjust for Add | 덧셈 결과 AL값을 UNPACK 10진수로 보정 | 
| DAA | Decimal adjust for Add | 덧셈 결과의 AL값을 PACK 10진수로 보정 | 
| SUB | Subtract | 캐리를 포함하지 않은 뺄셈 | 
| AAS | ASCII adjust for Subtract | 뺄셈 결과 AL값을 UNPACK 10진수로 보정 | 
| DAS | Decimal adjust for Subtract | 뺄셈 결과의 AL값을 PACK 10진수로 보정 | 
| MUL | Multiply (Unsigned) | AX와 오퍼랜드를 곱셈하여 결과를 AX 또는 DX:AX에 저장 | 
| IMUL | Integer Multiply (Signed) | 부호화된 곱셈 | 
| AAM | ASCII adjust for Multiply | 곱셈 결과 AX값을 UNPACK 10진수로 보정 | 
| DIV | Divide (Unsigned) | AX 또는 DX:AX 내용을 오퍼랜드로 나눔. 몫은 AL, AX 나머지는 AH, DX로 저장  | 
| IDIV | Integer Divide (Signed) | 부호화된 나눗셈 | 
| AAD | ASCII adjust for Divide | 나눗셈 결과 AX값을 UNPACK 10진수로 보정 | 
| CBW | Convert byte to word | AL의 바이트 데이터를 부호 비트를 포함하여 AX 워드로 확장 | 
| CWD | Convert word to double word | AX의 워드 데이터를 부호를 포함하여 DX:AX의 더블 워드로 변환 | 
| Logic | ||
| NOT | Invert | 오퍼랜드의 1의 보수, 즉 비트 반전 | 
| SHL/SAL | Shift logical / arithmetic Left | 왼쪽으로 오퍼랜드만큼 자리 이동 (최하위 비트는 0) | 
| SHR | Shift logical Right | 오른쪽으로 오퍼랜드만큼 자리 이동 (최상위 비트 0) | 
| SAR | Shift arithmetic Right | 오른쪽 자리이동, 최상위 비트는 유지 | 
| ROL | Rotate Left | 왼쪽으로 오퍼랜드만큼 회전 이동 | 
| ROR | Rotate Right | 오른쪽으로 오퍼랜드만큼 회전 이동 | 
| RCL | Rotate through Carry Left | 캐리를 포함하여 왼쪽으로 오퍼랜드만큼 회전 이동 | 
| RCR | Rotate through Carry Right | 캐리를 포함하여 오른쪽으로 오퍼랜드만큼 회전 이동 | 
| AND | And | 논리 AND | 
| TEST | And function to Flags, no result | 첫 번째 오퍼랜드와 두 번째 오퍼랜드를 AND하여 그 결과로 플래그 세트 | 
| OR | Or | 논리 OR | 
| XOR | Exclusive Or | 배타 논리 합 (OR) | 
| String Manipulation | ||
| REP | Repeat | REP 뒤에 오는 스트링 명령을 CX가 0이 될 때까지 반복 | 
| MOVS | Move String | DS:SI가 지시한 메모리 데이터를 ES:DI가지시한 메모리로 전송  | 
| CMPS | Compare String | DS:SI와 ES:DI의 내용을 비교하고 결과에 따라 플래그 설정 | 
| SCAS | Scan String | AL 또는 AX와 ES:DI가 지시한 메모리 내용 비교하고 결과에 따라 플래그 설정 | 
| LODS | Load String | SI 내용을 AL 또는 AX로 로드 | 
| STOS | Store String | AL 또는 AX를 ES:DI가 지시하는 메모리에 저장 | 
| Control Transfer | ||
| CALL | Call | 프로시저 호출 | 
| JMP | Unconditional Jump | 무조건 분기 | 
| RET | Return from CALL | CALL로 스택에 PUSH된 주소로 복귀 | 
| JE/JZ | Jump on Equal / Zero | 결과가 0이면 분기 | 
| JL/JNGE | Jump on Less / not Greater or Equal | 결과가 작으면 분기 (부호화된 수) | 
| JB/JNAE | Jump on Below / not Above or Equal | 결과가 작으면 분기 (부호화 안 된 수) | 
| JBE/JNA | Jump on Below or Equal / not Above | 결과가 작거나 같으면 분기 (부호화 안 된 수) | 
| JP/JPE | Jump on Parity / Parity Even | 패리티 플레그가 1이면 분기 | 
| JO | Jump on Overflow | 오버플로가 발생하면 분기 | 
| JS | Jump on Sign | 부호 플레그가 1이면 분기 | 
| JNE/JNZ | Jump on not Equal / not Zero | 결과가 0이 아니면 분기 | 
| JNL/JGE | Jump on not Less / Greater or Equal | 결과가 크거나 같으면 분기 (부호화된 수) | 
| JNLE/JG | Jump on not Less or Equal / Greater | 결과가 크면 분기 (부호화된 수) | 
| JNB/JAE | Jump on not Below / Above or Equal | 결과가 크거나 같으면 분기 (부호화 안 된 수) | 
| JNBE/JA | Jump on not Below or Equal / Above | 결과가 크면 분기 (부호화 안 된 수) | 
| JNP/JPO | Jump on not Parity / Parity odd | 패리티 플레그가 0이면 분기 | 
| JNO | Jump on not Overflow | 오버플로우가 아닌 경우 분기 | 
| JNS | Jump on not Sign | 부호 플레그가 0이면 분기 | 
|  | Loop CX times | CX를 1감소하면서 0이 될 때까지 지정된 라벨로 분기 | 
| LOOPZ/LOOPE |  | 제로 플레그가 1이고 CX≠0이면 지정된 라벨로 분기 | 
| LOOPNZ/LOOPNE |  | 제로 플레그가 0이고 CX≠0이면 지정된 라벨로 분기 | 
| JCXZ | Jump on CX Zero | CX가 0이면 분기 | 
| INT | Interrupt | 인터럽트 실행 | 
| INTO | Interrupt on Overflow | 오버플로우가 발생하면 인터럽트 실행 | 
| IRET | Interrupt Return | 인터럽트 복귀 (리턴) | 
| Processor Control | ||
| CLC | Clear Carry | 캐리 플레그 클리어 | 
| CMC | Complement Carry | 캐리 플레그를 반전 | 
| CLD | Clear Direction | 디렉션 플레그를 클리어 | 
| CLI | Clear Interrupt | 인터럽트 플레그를 클리어 | 
| HLT | Halt | 정지 | 
| LOCK | Bus Lock prefix |  | 
| STC | Set Carry | 캐리 플레그 셋 | 
| NOP | No operation |  | 
| STD | Set Direction | 디렉션 플레그 셋 | 
| STI | Set Interrupt | 인터럽트 인에이블 플레그 셋 | 
| WAIT | Wait | 프로세서를 일지 정지 상태로 한다 | 
| ESC | Escape to External device | 이스케이프 명령 | 
Push: sp 레지스터를 조작하는 명령어중의 하나이다.
스택에 데이터를 저장하는데 쓰인다.
ex:) Push eax
:스택에 Eax의 값을 스택에 저장한다.
ex:) Push 20
:즉석값인 20을 스택에 저장한다.
ex:) Push 401F47
:메모리 오프셋 401F47의 값을 스택에 저장한다.
Pop: 이또한 sp 레지스터를 조작하는 명령어중 하나
이다. 스택에서 데이터를 꺼내는데 쓰인다.
ex:) Pop eax
:스택에 가장 상위에 있는 값을 꺼내애서 eax에 저장
주의점: Push 의 역순으로 값은 스택에서 Pop 된다.
Moo 메모리나 레지스터의 값을 옮길떄[로 만들떄]
쓰인다.
ex:) Mov eax,ebx
:ebx 레지스터의 값을 eax로 옮긴다[로 만든다].
ex:) Mov eax,20
:즉석값인 20을 eax레지스터 에 옮긴다[로 만든다].
ex:) Mov eax,dword ptr[401F47]
:메모리 오프셋 401F47 의 값을 eax에 옮긴다[로 만든다]
Lea: 오퍼렌드1의 값을 오퍼렌드2의 값으로 만들어준다.
ex:) Lea eax,ebx
:eax레지스터의 값을 ebx의 값으로 만든다.
Inc: 레지스터의 값을 1증가 시킨다.
ex:) Inc eax
:Eax 레지스터의 값을 1증가 시킨다.
Dec: 레지스터의 값을 1 감소 시킨다.
ex:) Dec eax
:Eax 레지스터의 값을 1 감소 시킨다.
Add: 레지스터나 메모리의 값을 덧셈할떄 쓰임.
ex:) Add eax,ebx
:Eax 레지스터의 값에 ebx 값을 더한다.
ex:) Add eax,50
:Eax 레지스터에 즉석값인 50을 더한다.
ex:) Add eax,dword ptr[401F47]
:Eax 레지스터에 메모리 오프셋 401F47의 값을 더한다.
 invalid-file
invalid-file