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 didnt see any simple example. Where?"

    The one to which you replied:

    "Did you compile it? (Compiler give error)"

    Was a pretty simple example of how it could be done. Also, Keil provide a number of example modules in assembler which fundamentally do a similar thing.

    The theme of the previous two sentences were repeated quite a few times throughout this thread and it appears as if you did not follow them through.

    "But i give to you."

    Any confident and resourceful assembly programmer will not need or want such a method - The Keil/ARM assembler has inbuilt facilities for achieving it in a far more elegant fashion.

Reply
  • "I didnt see any simple example. Where?"

    The one to which you replied:

    "Did you compile it? (Compiler give error)"

    Was a pretty simple example of how it could be done. Also, Keil provide a number of example modules in assembler which fundamentally do a similar thing.

    The theme of the previous two sentences were repeated quite a few times throughout this thread and it appears as if you did not follow them through.

    "But i give to you."

    Any confident and resourceful assembly programmer will not need or want such a method - The Keil/ARM assembler has inbuilt facilities for achieving it in a far more elegant fashion.

Children