what are the states of ARM
1. ARM state
2. Thumb state (T32)
in this ARM state, instructions are always 32-bits wide
ARM
in this ARM state, instructions are either 16 bits or 32 bits wide
Thumb
this is the default ARM state
ARM
this is the state the core boots up in by default in ARM
ARM
this ARM state is useful because of high code density
Thumb state
,what is the extension for Thumb state instructions?
.w
in ARM, what does .w mean?
Thumb state instruction extension
what must be used for conditional execution in Thumb state?
IT instruction
what is the advantage of the Thumb state in ARM?
higher code density
in ARM, this is when instructions require arithmetic conditions to be met
before execution
conditional execution
how do you do conditional execution in the regular ARM state?
the conditional execution (if-then control flow) is baked into the instruction
itself
,what is great about conditional execution in ARM state?
1. reduced number of branch executions
2. higher code density
why is "reduced number of branch executions" a good thing?
less expensive code
what does "higher code density" mean?
less instructions need to be executed
in this state of ARM, all instructions support conditional execution
ARM
in this state of ARM, the IT instruction must be used to enable conditional
execution
Thumb
this is when an instruction contains another arithmetic instruction that shifts or
rotates a register
ARM barrel shifter
, what is the advantage of ARM barrel shifter?
it shrinks multiple instructions into one
what does the instruction MOV R1, R0 LSL #1 do?
R1 = R0 * 2
in the instruction MOV R1, R0 LSL #1, what does LSL #1 do?
shift left R0 by 1 bit
what is the instruction MOV R1, R0 LSL #1 an example of?
ARM barrel shifter
what does shifting left by 1 bit do?
double a value
the instruction STM R1, {R6-R10} is an example of ARM's ability to
use a range of registers as operands