강좌 & 팁
안녕하세요.
명절 잘 보내셨죠!?
오늘도 니모닉 조건 하나를 선택하여 공부해 보겠습니다.
GT( signed Greater Than )
GT의 의미는 '큼(부호 있는 수)' 이며 Negative와 oVerflow 플래그 세트(1), Zero 플래그 클리어(0) /
Negative와 oVerflow, Zero 플래그 클리어(0) 일 경우 입니다.
조건부 실행의 기능이 많아(?)질 수록 플래그의 설정이 많이 필요하죠?
GT 니모닉 조건을 이용하여 프로그램하나를 작성해 보겠습니다 ^^
1. 프로그램
다음은 gt 니모닉 조건을 이용한 gt.c 예제 프로그램 입니다.
다음 프로그램은 r0와 r1을 비교하여 연산 결과가 클 경우 bgt_test()를 호출하는 프로그램입니다.
#include <stdio.h>
int asm_gt_ex ( void );
void bgt_test ( void )
{
printf("BGT TEST OK \n\n");
}
asm(" \n\
.global asm_gt_ex \n\
asm_gt_ex: \n\
mov r0, #3 \n\
mov r1, #2 \n\
cmp r0, r1 \n\
bgt bgt_test \n\
mov pc, lr \n\
");
int main ( void )
{
printf("\n+------------------+\n");
printf("|ARM Instruction GT|");
printf("\n+------------------+\n\n");
asm_gt_ex();
printf("Program END\n\n");
return 0;
}
2. 프로그램 설명
프로그램을 하나하나 살펴 보겠습니다.
핵심이 되는 소스는,
mov r0, #3
mov r1, #2
cmp r0, r1
bgt bgt_test
입니다.
어떻게 설명할지 정말 뻔하죠!?? ^^
그래도 꿋꿋히 설명합니다!
mov r0, #3
mov r1, #2
bgt_test() 를 호출 후 종료합니다.
그렇지 않을 경우,
프로그램은 그냥 종료 됩니다.
프로그램을 실행시켜 결과를 확인해 보겠습니다 ^^
3. 프로그램 실행화면
다음은 실행 화면입니다.
여러분들도 실행해 보세요 ^^
앞으로?
다음글에도 니모닉 조건을 이용하여 프로그램해 보겠습니다 ^^