강좌 & 팁
안녕하세요.
오늘도 역시 ARM 명령어에 대하여 공부해 보겠습니다.
본론으로 들어가기 전에 저번글에 문제에 대한 답을 알아보고 시작하겠습니다.
정답은 정말 간단합니다!
asm_cmn_ex() 함수의 인자값을 다음과 같이 넣어 주면 됩니다.
asm_cmn_ex( 2, 2 )
정말 쉽죠!?
자, 본론으로 들어갈까요?
MUL 명령어
오늘은 곱셈 명령어인 MUL 명령어에 대하여 공부해 보겠습니다.
MUL 명령어느 32 비트 곱셈 명령어입니다.
MUL 명령을 이용하여 프로그램을 해보겠습니다 ^^
1. 프로그램
다음은 MUL 명령어를 사용한 mul.c 예제 프로그램 입니다.
#include <stdio.h>
int asm_mul_ex ( int x, int y );
asm(" \n\
.global asm_cmp_ex \n\
asm_cmp_ex: \n\
mul r0, r1 \n\
mov pc, lr \n\
");
int main ( void )
{
int cmp;
printf("\n+-------------------+\n");
printf("|ARMInstruction CMP|\n");
printf("+-------------------+\n\n");
cmp = asm_cmp_ex( 2, 2);
printf("mul = %d\n\n", mul )
return 0;
}
결과를 예상해 보세요~^^
2. 프로그램 설명
핵심 소스는 다음과 같습니다.
mul r0, r1
눈치가 빠르신 분들이라면 벌써 계산이 되었을 겁니다!
정답은 4!!
당연합니다.
r0와 r1에 각각 2가 인자값으로 넘어가고
MUL이 곱셈 명령어였으니
2 * 2 가 되는거겠지요?
그럼 정답은!?
프로그램을 실행하여 정말 4가 나오는지 확인해 보겠습니다.
3. 프로그램 실행화면
다음은 실행 화면입니다.
여러분도 이렇게 나오나요~?
앞으로?
다음글에도 역시~ ARM 명령어 중 하나를 선택하여 공부해 보겠습니다.
빠른만남을 원하시면 http://ms-osek.org/ 여기로 찾아오세요~