I am fairly new to ARM. The documentation for the Instruction Set is pretty lacking. I am looking for any documents available that will show all the instruction set of the ARM, and especially, showing how the flags are affected. As it is I have discovered it to be very strange that the carry flag acts as it should with the ADD instruction but is the opposite for the SUB instruction. Is there anyone out there who can shed some light on this issue? I have documentations from ST, Atmel, and ARM on the instruction set but now of them explains how the carry flag is affected by the SUB instruction.
I have never seen a completed table of Instruction Set Summary for ARM too, neither on the net nor anywhere else. A possible explanation is that such an ARM Instruction Set is too extensive with all it's Options. So you can find only compact descriptions. The Instructions for Subtraction with the affected Flags are described in the ARM Instruction Set Quick Reference Card v2.1 : http://www.arm.com/documentation/Instruction_Set/index.html Description of Instruction Set is also in ARM ???? Technical Reference Manual : http://www.arm.com/documentation/ARMProcessor_Cores/index.html Otherwise, the Function of the Flags are basic principles that is not necessarily controller specific. Why don't you use the µVision in Simulator Mode, where you can evaluate the CPSR Register to see how the flags are affected?
I have never seen a completed table of Instruction Set Summary for ARM too, neither on the net nor anywhere else. You need David Seal's "ARM ARM"; download it from here: http://www.altera.com/literature/third-party/ddi0100e_arm_arm.pdf, it is about 13 MB pdf version of his paperback book. Another source for this file is at at91.com This book is simply the best source, classic, for learning about ARM instructions, extremely well written. It doesn't cover Thumb-2, though.
Thank you, Roger, to give the right link!!! Thumb-2 is certainly not yet important for us because the ARM7TDMI-S is not Thumb-2 related. Dietmar
Thank you for the link. Very much appreciated.
In reading it I must thank you again Roger for the link. That is a really well documented explanation of the ARM instruction set and has been very helpful. I am one of those die hard Assembler Programmers. I am currently working on Large Number Arithmetic (128 doubles=256 words= 512 bytes). The behaviour of the flags is critical especially to design compact and fast codes. Hopefully if I am successful I will be able to implement a crpyptographic system all in assembler. Lee