Introduction to ARM
Program Counter
- When in ARM mode:
- Instructions are 32 bits wide.
- All instructions must be word-aligned.
- The PC is in bits [31:2] and bits [1:0] are undefined.
- When in Thumb mode:
- Instructions are 16 bits wide.
- All instructions must be halfword-aligned.
- The PC is in bits [31:1] and bit 0 is undefined.


“word” and “halfword” mean 4-byte and 2-byte quantities respectively.
It’s not mentioned on the slide, but when in Jazelle mode: