Skip to content
This repository was archived by the owner on Mar 14, 2025. It is now read-only.

Latest commit

 

History

History
148 lines (98 loc) · 4.04 KB

File metadata and controls

148 lines (98 loc) · 4.04 KB

ASM 명령어 예시

이 문서는 제공된 명령어 세트를 기반으로 각 명령어의 사용 예시를 제공합니다.

1. live

live 명령어는 프로그램이 살아있음을 선언하는 명령어입니다. 하나의 DIR(직접 입력 값) 타입의 인자를 받습니다.

예시:

live %1234

2. ld

ld 명령어는 값을 레지스터에 로드하는 명령어입니다. 두 개의 인자를 받으며, 첫 번째 인자는 DIR 또는 IND(직접 값 또는 간접 주소), 두 번째 인자는 레지스터(REG)입니다.

예시:

ld %5, r1

3. st

st 명령어는 레지스터의 값을 다른 위치에 저장하는 명령어입니다. 첫 번째 인자는 레지스터(REG), 두 번째 인자는 레지스터나 간접 주소(REG | T_IND)입니다.

예시:

st r1, r2

4. add

add 명령어는 두 개의 레지스터 값을 더하고 그 결과를 세 번째 레지스터에 저장합니다. 모든 인자는 REG(레지스터)입니다.

예시:

add r1, r2, r3

5. sub

sub 명령어는 두 개의 레지스터 값을 빼고 그 결과를 세 번째 레지스터에 저장합니다. 모든 인자는 REG(레지스터)입니다.

예시:

sub r1, r2, r3

6. and

and 명령어는 두 개의 인자에 대해 비트 단위의 AND 연산을 수행하고 그 결과를 세 번째 레지스터에 저장합니다. 첫 번째와 두 번째 인자는 REG, DIR, 또는 IND일 수 있으며, 세 번째는 레지스터(REG)입니다.

예시:

and r1, %10, r2

7. or

or 명령어는 두 개의 인자에 대해 비트 단위의 OR 연산을 수행하고 그 결과를 세 번째 레지스터에 저장합니다. 첫 번째와 두 번째 인자는 REG, DIR, 또는 IND일 수 있으며, 세 번째는 레지스터(REG)입니다.

예시:

or r1, r2, r3

8. xor

xor 명령어는 두 개의 인자에 대해 비트 단위의 XOR 연산을 수행하고 그 결과를 세 번째 레지스터에 저장합니다. 첫 번째와 두 번째 인자는 REG, DIR, 또는 IND일 수 있으며, 세 번째는 레지스터(REG)입니다.

예시:

xor r1, r2, r3

9. zjmp

zjmp 명령어는 제로 플래그를 기반으로 조건부 점프를 수행합니다. 하나의 DIR(직접 값) 타입의 인자를 받습니다.

예시:

zjmp 42

10. ldi

ldi 명령어는 오프셋을 사용하여 값을 레지스터에 로드합니다. 첫 번째 인자는 REG, DIR, 또는 IND일 수 있고, 두 번째 인자는 REG 또는 DIR, 세 번째는 레지스터(REG)입니다.

예시:

ldi r1, %5, r2

11. sti

sti 명령어는 레지스터의 값을 오프셋을 사용하여 저장합니다. 첫 번째 인자는 레지스터(REG), 두 번째 인자는 REG, DIR, 또는 IND일 수 있으며, 세 번째 인자는 REG 또는 DIR입니다.

예시:

sti r1, r2, r3

12. fork

fork 명령어는 새로운 프로세스를 생성합니다. 하나의 DIR(직접 값) 타입의 인자를 받습니다.

예시:

fork 42

13. lld

lld 명령어는 값을 레지스터에 로드합니다. 첫 번째 인자는 DIR 또는 IND일 수 있고, 두 번째 인자는 레지스터(REG)입니다.

예시:

lld %5, r1

14. lldi

lldi 명령어는 인덱스 기반 주소에서 값을 레지스터로 로드합니다. 첫 번째 인자는 REG, DIR, 또는 IND일 수 있고, 두 번째 인자는 REG 또는 DIR, 세 번째는 레지스터(REG)입니다.

예시:

lldi r1, r10, r2

15. lfork

lfork 명령어는 새로운 프로세스를 생성하지만, fork와 달리 로컬 포크입니다. 하나의 DIR(직접 값) 타입의 인자를 받습니다.

예시:

lfork 42

16. aff

aff 명령어는 레지스터의 값을 문자로 출력합니다. 하나의 레지스터(REG)를 인자로 받습니다.

예시:

aff r1