您现在的位置: 主页 > 嵌入式处理器 > FPGA > 从汇编程序中访问C程序变量 -
本文所属标签:
为本文创立个标签吧:

从汇编程序中访问C程序变量 -

来源: 网络用户发布,如有版权联系网管删除 2018-08-07 

[导读]在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次

本文引用地址: http://www.21ic.com/app/eda/201806/769241.htm



              查看评论 回复



嵌入式交流网主页 > 嵌入式处理器 > FPGA > 从汇编程序中访问C程序变量 -
 

"从汇编程序中访问C程序变量 -"的相关文章

网站地图

围观()