title: What is the difference between the ARM, Thumb and Thumb 2 instruction encodings?
body: <p>I am a bit confused about instruction sets. There are Thumb, ARM and Thumb 2. From what I have read Thumb instructions are all 16-bit but inside the <strong>ARMv7M user manual</strong> (page vi) there are Thumb 16-bit and Thumb 32-bit instructions mentioned. </p>
  
  <p>Now I have to overcome this confusion. It is said that Thumb 2 supports 16-bit and 32-bit instructions. So is ARMv7M in fact supporting Thumb 2 instructions and not just Thumb?  </p>
  
  <p>One more thing. Can I say that Thumb (32-bit) is the same as ARM instructions which are allso 32-bit?</p>