이 문서는 제공된 명령어 세트를 기반으로 각 명령어의 사용 예시를 제공합니다.
live 명령어는 프로그램이 살아있음을 선언하는 명령어입니다. 하나의 DIR(직접 입력 값) 타입의 인자를 받습니다.
예시:
live %1234ld 명령어는 값을 레지스터에 로드하는 명령어입니다. 두 개의 인자를 받으며, 첫 번째 인자는 DIR 또는 IND(직접 값 또는 간접 주소), 두 번째 인자는 레지스터(REG)입니다.
예시:
ld %5, r1st 명령어는 레지스터의 값을 다른 위치에 저장하는 명령어입니다. 첫 번째 인자는 레지스터(REG), 두 번째 인자는 레지스터나 간접 주소(REG | T_IND)입니다.
예시:
st r1, r2add 명령어는 두 개의 레지스터 값을 더하고 그 결과를 세 번째 레지스터에 저장합니다. 모든 인자는 REG(레지스터)입니다.
예시:
add r1, r2, r3sub 명령어는 두 개의 레지스터 값을 빼고 그 결과를 세 번째 레지스터에 저장합니다. 모든 인자는 REG(레지스터)입니다.
예시:
sub r1, r2, r3and 명령어는 두 개의 인자에 대해 비트 단위의 AND 연산을 수행하고 그 결과를 세 번째 레지스터에 저장합니다. 첫 번째와 두 번째 인자는 REG, DIR, 또는 IND일 수 있으며, 세 번째는 레지스터(REG)입니다.
예시:
and r1, %10, r2or 명령어는 두 개의 인자에 대해 비트 단위의 OR 연산을 수행하고 그 결과를 세 번째 레지스터에 저장합니다. 첫 번째와 두 번째 인자는 REG, DIR, 또는 IND일 수 있으며, 세 번째는 레지스터(REG)입니다.
예시:
or r1, r2, r3xor 명령어는 두 개의 인자에 대해 비트 단위의 XOR 연산을 수행하고 그 결과를 세 번째 레지스터에 저장합니다. 첫 번째와 두 번째 인자는 REG, DIR, 또는 IND일 수 있으며, 세 번째는 레지스터(REG)입니다.
예시:
xor r1, r2, r3zjmp 명령어는 제로 플래그를 기반으로 조건부 점프를 수행합니다. 하나의 DIR(직접 값) 타입의 인자를 받습니다.
예시:
zjmp 42ldi 명령어는 오프셋을 사용하여 값을 레지스터에 로드합니다. 첫 번째 인자는 REG, DIR, 또는 IND일 수 있고, 두 번째 인자는 REG 또는 DIR, 세 번째는 레지스터(REG)입니다.
예시:
ldi r1, %5, r2sti 명령어는 레지스터의 값을 오프셋을 사용하여 저장합니다. 첫 번째 인자는 레지스터(REG), 두 번째 인자는 REG, DIR, 또는 IND일 수 있으며, 세 번째 인자는 REG 또는 DIR입니다.
예시:
sti r1, r2, r3fork 명령어는 새로운 프로세스를 생성합니다. 하나의 DIR(직접 값) 타입의 인자를 받습니다.
예시:
fork 42lld 명령어는 값을 레지스터에 로드합니다. 첫 번째 인자는 DIR 또는 IND일 수 있고, 두 번째 인자는 레지스터(REG)입니다.
예시:
lld %5, r1lldi 명령어는 인덱스 기반 주소에서 값을 레지스터로 로드합니다. 첫 번째 인자는 REG, DIR, 또는 IND일 수 있고, 두 번째 인자는 REG 또는 DIR, 세 번째는 레지스터(REG)입니다.
예시:
lldi r1, r10, r2lfork 명령어는 새로운 프로세스를 생성하지만, fork와 달리 로컬 포크입니다. 하나의 DIR(직접 값) 타입의 인자를 받습니다.
예시:
lfork 42aff 명령어는 레지스터의 값을 문자로 출력합니다. 하나의 레지스터(REG)를 인자로 받습니다.
예시:
aff r1