加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

ARM汇编程序访问C程序中的变量

(2010-12-02 16:33:55)
标签:

arm汇编程序

访问

c程序

全局变量

校园

分类: 嵌入式(arm...)

    ARM汇编程序访问C程序中的变量,可通过地址间接地访问C程序中声明为全局属性的变量,具体操作步骤如下:

(1)在C程序中,将供ARM汇编程序访问的变量声明为全局变量;

(2)在ARM汇编程序中,用伪指令IMPORT引入C程序中的全局变量;

(3)用伪指令LDR读取这个全局变量的地址;

(4)使用伪指令LDR读取这个全局变量的值;

(5)在ARM汇编程序中使用这个全局变量。

 

程序清单如下:

// main.c

#include <stdio.h>

int giNum = 10;
extern void twoTimes(void);

int main()
{
      printf("Original value of giNum is: %d\n",giNum);
      twoTimes();
      printf("Modified value of giNum is: %d\n",giNum); 
      return 0;
}

//asm.s

      area twoTimes,code,readonly
      export twoTimes
      import giNum 
start
      ldr r0,=giNum
      ldr r1,[r0]
      mov r2,#2
      mul r3,r1,r2
      str r3,[r0]
      mov pc,lr
      end

程序在ADS编译环境完美运行成功。

http://s6/middle/6855b169496697ac551f5&690

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有