안녕하세요.


한주 잘지내셨나요~?


오늘도 역시 ARM 명령어중 하나를 골라 공부해 보곘습니다 ^^

PSR 명령어


ARM 명령어 세트에서는 PSR(Program Status Register)을 직접 제어하기 위한 명령어를 2가지 제공하고 있습니다.


제공하는 2가지 명령어중 MRS에 대하여 알아보겠습니다.

MRS 명령어


MRS 명령어는 CPSR이나 SPSR의 내용을 레지스터로 읽어오는 명령 입니다 ^^


CPSR과 SPSR이 무엇인지 궁금하신 분들은 아래 링크를 클릭 해주세요 ^^


ARM 레지스터에 대한 간단한 설명!


MRS 명령어를 사용해 프로그램 해보겠습니다!

1. 프로그램


다음 프로그램을 실행하면 CPSR 값을 출력합니다. 


다음은 MRS 명령을 이용하여 mrs.c 예제 프로그램입니다.



#include <stdio.h>

int  asm_mrs_ex ( void );

asm(" \n\
.global asm_mrs_ex \n\
mrs r0, cpsr \n\
mov pc, lr      \n\
");

int main ( void )
{
int  cpsr;

printf("\n+-------------------+\n");
printf("|ARMInstruction MRS|\n");
printf("+-------------------+\n\n");

cpsr = asm_mrs_ex();         
printf("cpsr = %08X\n\n", cpsr );
return 0; }


실행 결과를 예상해 보세요~

2. 프로그램 설명


이번 예제 프로그램은 매~ 우 간단합니다!ㅎㅎ


핵심 소스는 다음과 같습니다. 


mrs r0, cpsr


이를 수행하면 cpsr 값이 r0로 복사됩니다.


물론 mov r0, cpsr 이라는 명령어도 될꺼 같지만!


CPSR과 SPSR과 상태 레지스터는 PSR 명령어라고 불리는 명령어중 하나인 MRS 명령을 사용해야 합니다.


자, 이제 컴파일해서 실행해 보겠습니다.


3. 프로그램 실행화면


다음은 프로그램 실행화면 입니다.


asm_mrs_ex.PNG


여러분도 실행해 보세요!

앞으로?

 

다음글에는 PSR 명령어인 MSR 명령어를 알아보겠습니다 ^^


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