어셈블리어 명령어 총정리
1. MOV
- 두 개의 피연산자에서 첫 번째 피연산자의 값을 두 번째 피연산자로 복사한다.
- 예시:
MOV AX, BX
(BX 레지스터의 값을 AX 레지스터로 복사)
2. ADD
- 두 개의 피연산자를 더한 결과를 첫 번째 피연산자에 저장한다.
- 예시:
ADD AX, BX
(AX 레지스터에 BX 레지스터의 값을 더하여 결과를 AX에 저장)
3. SUB
- 첫 번째 피연산자에서 두 번째 피연산자를 뺀 결과를 첫 번째 피연산자에 저장한다.
- 예시:
SUB AX, BX
(AX 레지스터에서 BX 레지스터의 값을 빼고 결과를 AX에 저장)
4. INC
- 피연산자의 값을 1 증가시킨다.
- 예시:
INC CX
(CX 레지스터의 값을 1 증가시킴)
5. DEC
- 피연산자의 값을 1 감소시킨다.
- 예시:
DEC DX
(DX 레지스터의 값을 1 감소시킴)
6. CMP
- 두 개의 피연산자를 비교하여 결과를 플래그 레지스터에 설정한다.
- 예시:
CMP AX, BX
(AX와 BX 레지스터를 비교하여 플래그 레지스터를 설정)
7. JMP
- 주어진 조건에 따라 프로그램 흐름을 이동시킨다.
- 예시:
JMP label1
(label1 위치로 이동)
8. JE/JZ
- 플래그 레지스터의 상태가 '동일' 조건을 만족하면 주어진 위치로 이동한다.
- 예시:
JE label1
(플래그 레지스터가 '동일' 상태이면 label1 위치로 이동)
9. JNE/JNZ
- 플래그 레지스터의 상태가 '동일하지 않음' 조건을 만족하면 주어진 위치로 이동한다.
- 예시:
JNE label1
(플래그 레지스터가 '동일하지 않음' 상태이면 label1 위치로 이동)
10. AND
- 두 개의 피연산자를 비트 단위로 논리 AND 연산한 결과를 첫 번째 피연산자에 저장한다.
- 예시:
AND AX, BX
(AX 레지스터와 BX 레지스터 사이의 논리 AND 연산 결과를 AX에 저장)
11. OR
- 두 개의 피연산자를 비트 단위로 논리 OR 연산한 결과를 첫 번째 피연산자에 저장한다.
- 예시:
OR AX, BX
(AX 레지스터와 BX 레지스터 사이의 논리 OR 연산 결과를 AX에 저장)
12. XOR
- 두 개의 피연산자를 비트 단위로 논리 XOR 연산한 결과를 첫 번째 피연산자에 저장한다.
- 예시:
XOR AX, BX
(AX 레지스터와 BX 레지스터 사이의 논리 XOR 연산 결과를 AX에 저장)
13. NOT
- 피연산자를 비트 단위로 논리 NOT 연산한 결과를 피연산자에 저장한다.
- 예시:
NOT AX
(AX 레지스터의 비트 단위로 논리 NOT 연산 결과를 AX에 저장)
이 외에도 어셈블리어에는 다양한 명령어가 있으며, 프로그래머는 이러한 명령어들을 조합하여 원하는 작업을 수행하는 프로그램을 작성할 수 있다.
댓글