当前位置:首页 > 工业控制 > 电子设计自动化
[导读]在C程序中声明的全局变量可以被汇编程序通过地址间接访问,具体访问方法如下。 ·使用IMPORT伪指令声明该全局变量。 ·使用LDR指令读取该全局变量的内存地址,通常该全局变量的内存地址值存放在 程序的数据缓冲池中。

在C程序中声明的全局变量可以被汇编程序通过地址间接访问,具体访问方法如下。

·使用IMPORT伪指令声明该全局变量。

·使用LDR指令读取该全局变量的内存地址,通常该全局变量的内存地址值存放在

程序的数据缓冲池中。

·根据该数据的类型,使用相应的LDR指令读取该全局变量的值;使用相应的STR

指令修改该全局变量的值。

各数据类型及其对应的LDR/STR指令如下。

·对于无符号的char类型的变量通过指令LDRB/STRB来读写。

·对于无符号的short类型的变量通过指令LDRH/STRH来读写。

·对于int类型的变量通过指令LDR/STR来读写。

·对于有符号的char类型的变量通过指令LDRSB来读取。

·对于有符号的char类型的变量通过指令STRB来写入。

·对于有符号的short类型的变量通过指令LDRH来读取。

·对于有符号的short类型的变量通过指令STRH来写入。

·对于小于8个字的结构型变量,可以通过一条LDM/STM指令来读/写整个变量。

·对于结构型变量的数据成员,可以使用相应的LDR/STR指令来访问,这时必须知道该数据成员相对于结构型变量开始地址的偏移量。

下面是一个在汇编程序中访问C程序全局变量的例子。程序中变量globv1是在C程序中声明的全局变量。在汇编程序中首先用IMPORT伪指令声明该变量;再将其内存地址读入到寄存器RI中;然后将其值读入到寄存器R0中;修改后再将寄存器R0的值赋予变量globv1。本例中的程序如下。





来源:ks990次

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

仿真的概念其实使用非常广,最终的含义就是使用可控的手段来模仿真实的情况。在嵌入式系统的设计中,仿真应用的范围主要集中在对程序的仿真上。

关键字: 单片机 仿真器 程序

步进电动机是将电脉冲激励信号转换成相应的角位移或线位移的离散值控制电动机,这种电动机每当输入一个电脉冲就动一步,所以又称脉冲电动机。

关键字: 步进电机 正反转 程序

C语言是一种高级程序设计语言,它提供了十分完备的规范化流程控制结构。因此采用C51语言设计单片机应用系统程序时,首先要尽可能地采用结构化的程序设计方法,这样可使整个应用系统程序结构清晰,易于调试和维护。对于一个较大的程序...

关键字: C51语言 变量 存储

KeilμVision4是Keil软件公司为8051系列微控制器及其兼容产品设计的集成式软件开发环境。μVision4集成了C51编译器和A51汇编器,其界面类似于Microsoft VS,支持C语言和汇编语言程序的编写...

关键字: 程序 编译 链接

双方各执一词,谁也不退让,吴雄昂的身份成为薛定谔的猫:在Arm公司眼中,他已经被罢免一切职位;在安谋中国声明里,吴仍然一切照常。这种叠加态或许还会持续一段时间,但叠加态应该很快就会塌缩成一个确定结果。同样,安谋中国董事会...

关键字: ARM 中国董事会 程序

除了指令空间,自定义指令对应的程序出入口也有严格限制。自定义指令在使用过程中出现任何错误时,Arm的工具链都能及时对其进行识别、提取,并且进行相应的控制。目前也已经有第三方编译器,可以识别自定义指令集可能会出现的错误。专...

关键字: 指令空间 程序 ARM

如果说一众美国科技公司遵循特朗普命令断供华为,还算某种程度上维护所谓程序正义不得已而为之;那么各路本应对政治保持中立的国际技术标准组织,先后宣布剔除华为成员资格,绝对算助纣为虐;而联邦快递将华为委托寄送目的地为中国的快递...

关键字: 快递 华为 程序

定义一个变量,就是在内存中为你定义的这个变量开辟一段内存空间,如果这个变量没有初始化,那么系统会随机给这个变量赋一个值,这个值我一般称它为"垃圾数"。没有初始化的变量我认为它是没有意义的,是在浪费内存,就比如人刚出生的时...

关键字: 变量 初始化 赋值

在软件开发过程中,我们希望软件可以运行无误。但是常常事与愿违,程序经常跑飞,或者卡死。原因有很多,有可能是因为软件系统设计的原因,或者外部传感器的失效,再或者是程序的Bug等。为了防止程序在出现问题之后,可以顺利复位和重...

关键字: 软件 程序 传感器

用静态局部变量,还是临时变量,要牵涉到你项目具体情况,比如:RAM资源、代码运行效率等。(临时变量还会有一个数据拷贝过程)所以,该如何分配堆栈,该用静态还是临时变量,需要综合考虑你项目的情况而定。

关键字: 静态局部 变量 项目
关闭
关闭