AVR(Microchip Studio)
[µ-Processor] AVR내부연산 & Opcode
앞에서 변수를 선언하고 연산을 했다면 내부적으로 어떻게 연산이 이루어지는지 알아보자. AVR은 분명 8비트 운영체제인데 변수를 char로 선언하면 8비트에 딱 맞게 저장 할 수 있지만 이보다 큰 자료형은 저장공간을 어떻게 할당하며 내부 연산이 이루어질까? 예를들어 short a;라는 변수를 만들었다고 가정하자. short는 16비트라 하나의 레지스터(8비트) 안에 들어가지 못한다. 이를 해결하기 위해서는 다음 레지스터 공간을 같이 할당해주면 된다. 이와같이 short자료형은 R0, R1을 동시에 할당해 주면 된다. 덧셈 연산은 각각의 MSB부와 LSB부를 맞춰서 연산을 한다. 내부적으로 위와 같은 연산이 이루어짐을 결과를 통해 확인 할 수 있다. 그러나 위의 코드만 작성을 하면 문제점이 발생한다. 예를들..