# 마이컴 설계 ## 어셈블리 언어 ```asm LOAD 10 ; R0 = 5 LOOP: LED_ON ; LED 켜기 DELAY 1000 ; 대기 LED_OFF ; LED 끄기 DELAY 1000 ; 대기 DEC ; R0 = R0 - 1 JNZ LOOP ; R0 != 0이면 LOOP로 이동 JZ END_ON ; R0 == 0이면 END_ON으로 이동 END_ON: LED_ON ; LED 켠 상태 유지 JMP END_ON ; 무한 반복 ``` ## CPU 구성 CPU 내부의 구성은 다음과 같다. * PC * ROM * Decoder * GPIO * Delay Counter * R0 ## 명령어 0x1 LOAD n
0x2 INC
0x3 DEC
0x4 JMP addr
0x5 JZ addr
0x6 JNZ addr
0x7 LED_ON
0x8 LED_OFF
0x9 DELAY n
## 컴파일러 어셉블리로 작성된 프로그램을 명령어 코드로 변환된 기계어 언어로 변환해주는 프로그램 ```bash python asmtohex.py led.asm ``` ## 프로그램 다운로드 시리얼을 통해서 기계어 hex 파일로 변환된 프로그램을 다운로드 한다. ``` python hexsend.py led.hex ```