I'm just getting started using ARM assembly code and I'm having a hard time finding answers to a few simple questions.
1. Is there a single command for loading a 32 bit address into a register? Right now I'm using the following 4 commands to load 0x4000C018 into register R1 (for example) and it seems like there must be an easier way.
mov r1, #0x4000 ; r1: 0x00004000 // uart
lsl r1, #16 ; r1: 0x40000000
add r1, #0xC000 ; r1: 0x4000C000
add r1, #0x18 ; r1: 0x4000C018
2. Is there a way to load the address of a label? For example, I'd like to be able to load the address of the following string of characters into a register:
string: .byte 0x31, 0x32, 0x33, 0x34
3. Some of the documentation I've read says I can create labels with an EQU command;
two: EQU 2
but when I try to create a label this way in CCS it throws an "Illegal mnemonic" error. Is there a way to create labels in CCS?
4. It would also be great if I could find a list of all the legal ARM assembly commands. I haven't been able to find one anywhere.
Thank You