강좌 & 팁
안녕하세요~
오늘도 역시 ARM 명령어를 하나 배워볼까요?
혹시 논리 명령어 기억하시나요?
AND, ORR, EOR 이라는 명령어 말이죠!
위 명령어 말고 한가지 명령어가 더 있었네요!
오늘은 그 명령이 무엇인지 알아 보겠습니다.
BIC 명령어
BIC 명령어는 논리 명령어 중 하나이며,
비트 클리어( AND NOT ) 기능을 하는 명령어 입니다 ^^
AND 기능은 뭐였죠~?
다시 한번 보실 분은 아래 링크를 클릭~
BIC 명령어의 기능을 알아보기 위한 프로그램을 해보겠습니다.
1. 프로그램
다음 프로그램은 2개의 인자 값을 BIC 연산 후, 그 값을 출력하는 프로그램입니다.
다음은 BIC 명령어를 이용한 bic.c 예제 프로그램입니다.
#include <stdio.h>
int asm_bic_ex ( int x, int y);
asm(" \n\
.global asm_bic_ex \n\
asm_bic_ex: \n\
bic r0, r0, r1 \n\
mov pc, lr \n\
");
int main ( void )
{
int bic;
printf("\n+-------------------+\n");
printf("|ARMInstruction BIC|\n");
printf("+-------------------+\n\n");
bic = asm_bic_ex( 0x1111, 0x1010);
printf("cpsr = %08X\n\n", bic );
return 0;
}
실행 결과를 예상해 보세요~
2. 프로그램 설명
프로그램이 정말 간단하죠?
핵심 소스는 당연히!
bic r0, r0, r1
이 되겠습니다!
위 코드의 의미는 정말정말~ 간돤합니다!
어떻게 계산되는지 예상해 보겠습니다.
r0와 r1에는 각각 다음과 같은 값이 있겟죠?
r0 = 0x1111
r1 = 0x1010
BIC명령이 AND NOT 인 성질을 이용하면!
먼저 AND 연산을 하고,
0x1111 & 0x1010 = 0x1010
그 후 NOT 연산을 하면!
~(0x1010) = 0x0101
답은 위와 같겠죠!?
두근구든~ 실행 시켜 보겠습니다!
3. 프로그램 실행화면
다음은 프로그램 실행화면 입니다.
여러분도 실행해 보세요!
앞으로?
다음글에서도 역시 ARM 명령어중 하나를 선택하여 알아보겠습니다.
빠른만남을 원하시면 http://ms-osek.org/ 여기로 찾아오세요~