ARM程序集中的STR指令不起作用(使用KEIL)

时间:2015-01-18 19:23:33

标签: assembly arm stm32 keil

我试图将值存储在内存中。我的代码在这里:

        TTL TEST
        global main

        AREA PROGRAM, CODE, READONLY
        ENTRY

main
        ADR     R0, DATA
        MOV     R1, #5
        STR     R1, [R0]

HALT        B       HALT

DATA    DCD     10

        END

我使用KEIL uvision4,我的目标是STM32F407VGT微处理器。调试代码时,内存窗口没有任何变化。怎么了?

1 个答案:

答案 0 :(得分:1)

这是我以前的一些代码重写的一段代码。 (我没有再次测试)

   PRESERVE8
   TTL TEST
   global main

   AREA asectionname, DATA, READWRITE
DATA DCD 10

   AREA PROGRAM, CODE, READONLY
   ENTRY

main
   ADR  R0, DATA
   MOV  R1, #5
   STR  R1, [R0]

HALT 
   B    HALT
   END

通过在其上添加AREA asectionname, DATA, READWRITE,以下行将被放置在RAM区域中,并且能够被读取和写入。 DATA DCD 10声明一个名为DATA的变量,该变量的大小为1个单词,初始值为10。(DCD分配一个完整的单词,DCB分配一个字节)

请查看此page,以获取有关做什么和如何工作的进一步指示。