안녕하세요.


오늘도 역시 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. 프로그램 실행화면


다음은 실행 화면입니다.


asm_ex_mul().PNG


여러분도 이렇게 나오나요~?

앞으로?

 

다음글에도 역시~ ARM 명령어 중 하나를 선택하여 공부해 보겠습니다.


빠른만남을 원하시면 http://ms-osek.org/ 여기로 찾아오세요~