Skip to content

어셈블러작성

LED 프로그램작성

LED 를 제어하는 데 필요한 명령어를 구성을 한다.

C 언어 표현

C 언어로 작성된 프로그램은 다음과 같이 동작하는 프로그램


#include <stdint.h>

void LED_ON(void);
void LED_OFF(void);
void DELAY(uint32_t ms);

int main(void)
{
    int R0;

    R0 = 10;

LOOP:
    LED_ON();
    DELAY(1000);

    LED_OFF();
    DELAY(1000);

    R0--;

    if (R0 != 0)
        goto LOOP;

END_ON:
    LED_ON();

    while (1)
    {
        // JMP END_ON
    }

    return 0;
}

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  ; 무한 반복