강좌 & 팁
EQ (EQual)
1. 프로그램
다음은 EQ 니모닉 조건을 이용한 eq.c 예제 프로그램 입니다.
r0와 r1의 비교를 통하여 같으면 beq_test() 를 호출하고 같지 않을 경우 리턴하는 프로그램입니다.
#include <stdio.h>
int asm_eq_ex ( void );
void beq_test ( void )
{
printf("BEQ TEST OK \n\n");
}
asm(" \n\
.global asm_eq_ex \n\
asm_eq_ex: \n\
mov r0, #3 \n\
mov r1, #3 \n\
cmp r0, r1 \n\
beq beq_test \n\
mov pc, lr \n\
");
int main ( void )
{
printf("\n+---------------------+\n");
printf("|ARM Instruction EQua|\n");
printf("\n+---------------------+\n\n");
asm_eq_ex();
printf("Program END\n\n");
return 0;
}
결과를 예상해 보세요~^^
2. 프로그램 설명
핵심 소스는
mov r0, #3
mov r1, #3
cmp r0, r1
beq beq_test
입니다!
하나하나 살펴 보겠습니다.
mov r0, #3
mov r1, #3
위 코드를 수행하면 다음과 같은 코드로 표현할 수 있습니다.
r0 =3;
r1 = 3;
그렇죠?
cmp r0, r1
위 코드를 수행하면,
r0와 r1을 같은지 비교를 합니다.
만약 r0와 r1이 같다면
beq beq_test
3. 프로그램 실행화면
다음은 실행 화면입니다.
앞으로?
다음글에도 니모닉 조건을 이용하여 프로그램해 보겠습니다 ^^