ARM > Introduction to ARM > Program Counter

by David Thomas on

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.

Remarks

“word” and “halfword” mean 4-byte and 2-byte quantities respectively.

It’s not mentioned on the slide, but when in Jazelle mode:

  • Instructions are 8 bits wide.
  • Four are fetched at a time.