This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Declaring Variables in cortex m3 Assembly Language

I declare 32 bit variables in the MyAsmVar section.

I know the base address of MyAsmVar. Also I know the address of var1 and var2.

AREA MyAsmVar, DATA,NOINIT, READWRITE, ALIGN=3

var1 DCD 0x00
var2 DCD 0x00

LDR R0,=0x20000000 ; base address of MyAsmVar
LDR R1,[R0,#0] ; read var1 in to R1 (var1 address is 0)
LDR R2,[R0,#4] ; read var2 in to R2 (var2 address is 4)

We must know the numeric value of variable address and this is not good.

How can I use the variables names instead of address?

I want the following lines but compiler give error messages;

LDR R0,=0x20000000
LDR R1,[R0,#var1] ; read var1 in to R1
LDR R2,[R0,#var2] ; read var1 in to R2

Also i try following lines but compiler dont compile.

LDR R1,[R0,#&var1] ; read var1 in to R1
LDR R2,[R0,#&var2] ; read var1 in to R2

if I use

var1 equ 0
var2 equ 4

problem solving, but i dont want to count address of variables.

Parents
  • "I can't solve this problem"

    So why don't you just write in 'C', then?!

    How long do you think it is going to take you to become sufficiently profficient at ARM Assembler for you to be able to outsmart the compiler?

    If you really need to become an expert ARM Assembly programmer - which you will need to be in order to outsmart the compiler - then I would suggest taking a training course...

Reply
  • "I can't solve this problem"

    So why don't you just write in 'C', then?!

    How long do you think it is going to take you to become sufficiently profficient at ARM Assembler for you to be able to outsmart the compiler?

    If you really need to become an expert ARM Assembly programmer - which you will need to be in order to outsmart the compiler - then I would suggest taking a training course...

Children
No data