ARM Overview: Difference between revisions
Jump to navigation
Jump to search
[unchecked revision] | [unchecked revision] |
Content deleted Content added
No edit summary |
m Fix a few typos |
||
Line 124: | Line 124: | ||
|} |
|} |
||
Each mode shares some registers with other modes. Normally registers are specified in ARM instructions they use 4 bits. Which can represent 16 registers. As you can see there are exactly 16 registers which you can reference using instructions in each mode. The |
Each mode shares some registers with other modes. Normally registers are specified in ARM instructions they use 4 bits. Which can represent 16 registers. As you can see there are exactly 16 registers which you can reference using instructions in each mode. The mnemonic names are specified |
||
across the top header as R0 through R15. An alias to R13, R14, and R15 is |
across the top header as R0 through R15. An alias to R13, R14, and R15 is |
||
specified in |
specified in parenthesis which is SP, LR, and PC. So using the mnemonic R15 |
||
is the same as using the |
is the same as using the mnemonic PC, but keep in mind that this is only relevant to the assembler/compiler. The ARM processor only understands the value given using 4 bits in most instructions. The exactly value represented |
||
using these 4 bits for each |
using these 4 bits for each mnemonic can be gained by simply removing the prefixed letter R. So that R5 is represented by 4 bits as 0101, R6 as 0110, and R7 as 0111. The denotation which postfix ''IRQ'', ''UNDEF'', ''ABT'', ''SVC'', and ''FIQ'' is simply for display relevant only to this table and are not considered valid with any assembler/compiler for example ''R13ABT'', ''R13IRQ'', ''R13UNDEF'', ''R13SVC'', and ''R13FIQ'' all simply show that |
||
internally the processor maps R13 (SP) to a different address in it's register file. And, all can be represented by the value 0xD in hexadecimal or 1101 in binary. |
internally the processor maps R13 (SP) to a different address in it's register file. And, all can be represented by the value 0xD in hexadecimal or 1101 in binary. |
||
Line 200: | Line 200: | ||
{| class="wikitable" |
{| class="wikitable" |
||
|- |
|- |
||
! Mnemonic |
|||
! Memonic |
|||
! Binary |
! Binary |
||
! Description |
! Description |