firstcommit
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
|
||||
# 마이컴 설계
|
||||
|
||||
## 어셈블리 언어
|
||||
|
||||
```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 <br>
|
||||
0x2 INC <br>
|
||||
0x3 DEC<br>
|
||||
0x4 JMP addr<br>
|
||||
0x5 JZ addr<br>
|
||||
0x6 JNZ addr<br>
|
||||
0x7 LED_ON<br>
|
||||
0x8 LED_OFF<br>
|
||||
0x9 DELAY n<br>
|
||||
|
||||
|
||||
## 컴파일러
|
||||
|
||||
어셉블리로 작성된 프로그램을 명령어 코드로 변환된 기계어 언어로 변환해주는 프로그램
|
||||
|
||||
```bash
|
||||
|
||||
python asmtohex.py led.asm
|
||||
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 프로그램 다운로드
|
||||
|
||||
시리얼을 통해서 기계어 hex 파일로 변환된 프로그램을 다운로드 한다.
|
||||
|
||||
```
|
||||
python hexsend.py led.hex
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user