강좌 & 팁
안녕하세요.
오늘도 역시 니모닉 조건 하나를 선택하여 공부해 보겠습니다 ^^
LS( unsigned Lower / Same )
LS의 의미는 '작거나 같음' 이며 Carry 플래그의 클리어(0) / Zero 플래그 세트(1) 일 경우 입니다.
LS 니모닉 조건은 어떻게 동작하는지 프로그램을 하나 만들어 보겠습니다 ^^
1. 프로그램
다음은 ls 니모닉 조건을 이용한 ls.c 예제 프로그램 입니다.
다음 프로그램은 r0과 r1를 비교하여 연산 결과가 작을 경우 bls_test()를 호출하는 프로그램 입니다.
#include <stdio.h>
int asm_ls_ex ( void );
void bls_test ( void )
{
printf("BLS TEST OK \n\n");
}
asm(" \n\
.global asm_ls_ex \n\
asm_ls_ex: \n\
mov r0, #2 \n\
mov r1, #3 \n\
cmp r0, r1 \n\
bls bls_test \n\
mov pc, lr \n\
");
int main ( void )
{
printf("\n+------------------+\n");
printf("|ARM Instruction HI|");
printf("\n+------------------+\n\n");
asm_ls_ex();
printf("Program END\n\n");
return 0;
}
2. 프로그램 설명
프로그램을 하나하나 살펴 보겠습니다.
핵심이 되는 소스는,
mov r0, #2
mov r1, #3
cmp r0, r1
bls bls_test
입니다.
계속 제 글을 읽어 주신 분들은 외우실 겁니다!
지겨워도 어쩔수 없습니다^^
mov r0, #2
mov r1, #3
bls_test()
를 호출합니다.
그렇지 않을 경우, 즉 수행 결과가 클 경우
프로그램은 그냥 종료 됩니다.
프로그램을 실행시켜 결과를 확인해 보겠습니다 ^^
3. 프로그램 실행화면
다음은 실행 화면입니다.
여러분들은 제가 만든 프로그램을 검증 후, 연산 후 값이 같을 경우를 테스트 해보세요 ^^
앞으로?
다음글에도 니모닉 조건을 이용하여 프로그램해 보겠습니다 ^^