# 명령어 만들기 TINY CPU MICOM을 이용한 LED 를 제어에 필요한 명령어 SET 구성을 한다. ## LED 켜는 명령어 LED를 제어하는데 필요한 어셈블리 언어에 필요한 명령어들어 16bit 단위로 동작하도록 작성한다. ### 명령어 포맷 16bit = opcode[15:12] + operand[11:0] ### 명령어 | Mnemonic | Operand | Opcode (Hex) | Description | |-----------|---------|--------------|-------------| | NOP | - | 0x0 | No Operation | | LOAD | n | 0x1 | Load immediate value into register | | INC | - | 0x2 | Increment register | | DEC | - | 0x3 | Decrement register | | JMP | addr | 0x4 | Unconditional jump | | JZ | addr | 0x5 | Jump if zero | | JNZ | addr | 0x6 | Jump if not zero | | LED_ON | - | 0x7 | Turn LED on | | LED_OFF | - | 0x8 | Turn LED off | | DELAY | n | 0x9 | Delay for n time units | 만약 16비트 명령어 형식(상위 4비트 Opcode, 하위 12비트 Operand)을 사용한다면 다음과 같이 정리할 수도 있습니다. | Opcode | Mnemonic | Format | Example | |---------|----------|--------------|---------| | 0x0 | NOP | NOP | 0x0000 | | 0x1 | LOAD | LOAD n | 0x100A | | 0x2 | INC | INC | 0x2000 | | 0x3 | DEC | DEC | 0x3000 | | 0x4 | JMP | JMP addr | 0x4005 | | 0x5 | JZ | JZ addr | 0x500A | | 0x6 | JNZ | JNZ addr | 0x6002 | | 0x7 | LED_ON | LED_ON | 0x7000 | | 0x8 | LED_OFF | LED_OFF | 0x8000 | | 0x9 | DELAY | DELAY n | 0x93E8 |