Skip to content

마이컴 설계

어셈블리 언어


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

컴파일러

어셉블리로 작성된 프로그램을 명령어 코드로 변환된 기계어 언어로 변환해주는 프로그램


python asmtohex.py led.asm 


프로그램 다운로드

시리얼을 통해서 기계어 hex 파일로 변환된 프로그램을 다운로드 한다.

python hexsend.py led.hex