I have a couple of probably simple questions for you all regarding disassembly from C code to assembly code. I am using Keil uVision as a programmer and debugger with a TIVA TM4C123GXL microcontroller development board, which uses an ARM Cortex M4 microprocessor. I am single stepping through the code while in debugging mode and I don't understand a few things. Here is a screenshot of the C code I am referring too:
And here is the dissembled code I am referring too:
I should say I have not got an image of the registers to go with this during debug.
However, so my understanding is the values down the left-hand side (0x00000534) for example are the memory address locations that holds the current instruction. So 0x00000534 stores a branch instruction. The rightest value is then the contents of that memory address which is an immediate which points to the next address 0x0000054C?
What is the 4-digit hex value shown in the disassembly window? I assume it is the instruction and opcode. So for example, in the instruction at memory location 0x0000053A, there is an add instruction. Is the instruction and opcode for this 1C40?
Finally why does the program addresses start at 0x00000534? Is this because the microprocessor has a lot of initialising to do upon re-boot as it is a microcontroller with lots of programmable features, unlike say a bare metal microprocessor like a 6502?