ARM의 기본적인 소개가 끝나고 이제 프로그래밍에대한 기반지식을 배울 차례입니다. 이번 챕터에서는 ARM에서 사용하는 명령어 형식과 메모리 접근방법등을 공부할 예정입니다.

 일단 ARM의 명령어 형식은 일반적으로 32-bit 워드로 이루어져 있습니다. 만약 메모리상에서 16-bit를 사용하는 것은 하프워드(Half-word) 그리고 8-bit는 바이트(byte)단위라고 부릅니다. 따라서 연산 결과들도 32비트이며 레지스터에 저장됩니다.
 또한 ARM의 명령어는 Operand와 Opcode로 이루어져 있습니다. 여기서 Opcode란 명령어가 어떤 명령어인지 즉 operation code란 말이고 operand는 피연산자 즉 opcode가 필요로하는 데이터를 가르키는 말입니다. 예를 들어
 
     ADD r1,r2,r3     ;   r1= r2 + r3

이 소스에서 Opcode는 ADD 이고 operand는 r1,r2,r3가 됩니다. 이 operand사이에서도 source operand와 destination operand가 있는데 위 소스에서 source operand는 r2와 r3이 되겠고 destination operand는 r1이 되는걸 볼수 있습니다.


 위 그림은 ARM 명령어 세트의 형식을 나타내 준다. 맨 앞 4 Bit는 Condition Bit로 챕터 1의 마지막 장에서 설명했던 ARM 명령어들의 특징에서 모든 명령어가 Condition을 포함한다는 것을 나타내 줍니다.
 그리고 그 다음 8bit가 opcode를 나타내 주는 bit로 어찌보면 위 그림에서 가장 복잡하게 보이는 부분입니다. 하지만 위의 비트들은 일일이 알필요가 없으니 그냥 넘어가도 좋습니다.
 그다음에 나오는 20bit가 모두다 operand를 표시하는 bit입니다. 이 bit들은 조금더 뜯어 보면 앞의 4bit가 sourse bit 1입니다. 즉, 첫번재 나오는 sourse bit 입니다. 그리고 그 다음 4bit가 destination bit입니다. 그리고 그 뒤에 나오는 12bit가 sourse bit 2 즉, 두번재 나오는 소스 비트 입니다.
 차례 대로 나열하자면
 Condition(4) OPcode(8)  Source1(4)  Destination(4)  Source2 
정도가 됩니다.

'ARM(Advanced RISC Machine)' 카테고리의 다른 글

2.2 - ARM 데이터 이동 명령어 -1  (0) 2009.10.23
2.1 ARM 데이터 처리 명령어  (0) 2009.10.23
1.4 - ARM의 Instructions  (0) 2009.10.23
1.3 - ARM의 Register  (0) 2009.10.23
1.2 - ARM과 Bekeley RISC  (0) 2009.10.23

+ Recent posts