firstcommit
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
|
||||
# 어셈블러작성
|
||||
|
||||
|
||||
## LED 프로그램작성
|
||||
|
||||
LED 를 제어하는 데 필요한 명령어를 구성을 한다.
|
||||
|
||||
### C 언어 표현
|
||||
|
||||
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 언어 표현
|
||||
|
||||
- [led.asm 다운로드](files/led.asm)
|
||||
|
||||
|
||||
```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 ; 무한 반복
|
||||
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user