Problem on ARM microprocessor

The ARM microprocessor consists of 32 bit instructions and 32 bit registers. Demonstrate why this means that immediate addressing can't be used to load a register with 32 bit constant.

E

Expert

Verified

Each instruction is 32bits long in the ARM processor. Out of 32 bits, 4 bits are taken by instructions since there are 16 condition codes. After that there are 2x four for the destination and first operand registers, one for set-status flag, and then the assorted number of bits for other matters like the actual opcodes. As a result only 12 bits are left for use as immediate value.

So total number of distinct immediate value that can be taken = 2^12 = 4096. So In arm Microprocessor only 4096 values can be used as immediate addressing. The problem is after assigning bits to instruction-type, registers and other fields, there's very little room for actual numbers left.

Hence only a limited number of distinct values can be used for immediate addressing. The number of distinct values is 4096. Hence instead of 2^32, there are only 4096 immediate addressing.

Instead of just taking the 12 bits for a single integer, the designers have done is split it into an 8bit number (n) and a 4bit rotation field (M). The barrel shifter is employed for implementation purpose. The total immediate value v is given by: N×2^ (2M).

   Related Questions in Basic Computer Science

©TutorsGlobe All rights reserved 2022-2023.