You will need the datasheet (130+ pages) and the reference manual (1000+ pages).
You may as well give up on printed ARM programming manuals. There are so many variants that the thing to do is go to the ARM infocenter for the appropriate manual. And make no assumptions. You need the manual for the exact ARM variant you are working with.
As an example, an ARM7 core almost certainly uses the arm v4 instruction set (architecture). Do not confuse an ARM7 core (which is pretty much an antique) with the arm v7 instruction set (which is currently used in things like the ARM Cortex A8 in the Beaglebone Black). Note also that there is an arm v7r instruction set, an arm v7a instruction set, and an arm v7m instruction set. The Cortex A8 core uses the v7a instruction set. The Cortex M3 core uses the v7m instruction set.
So, the STM32F103 I am working with has an ARM Cortex M3 core and runs the arm v7m instructions.In general, thumb instructions have directly equivalant normal ARM instructions. Some exceptions are that only branches can be conditional, and thumb instructions can use only the first half of the general registers. Note that normal ARM instructions are always 32 bit and demand 4 byte alignment.
The term "Thumb-2" is claimed to be a confusing misnomer.
Processors with Cortex M cores support only thumb instructions. Note that with the advent of "Thumb-2", ARM introduced a unified assembler syntax so that code looks identical for thumb or normal ARM.
Tom's Computer Info / [email protected]