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 즉, 두번재 나오는 소스 비트 입니다.
차례 대로 나열하자면
정도가 됩니다.
일단 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 |