马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
汇编语言程序可通过地址间访问在C语言程序中声明的全局变量。通过使用IMPORT关键词引入全局变量,并利用LDR和STR指令根据全局变量的地址来访问它们。对于不同类型的变量,需要采用不同选项的LDR和STR指令: unsigned char LDRB/STRB unsigned short LDRH/STRH unsigned int LDR/STR char LDRSB/STRSB short LDRSH//STRSH 对于结构,如果知道各个成员的偏移量,则可通过加载和存储指令进行访问。如果结构所占空间小于8个字,则可用LDM和SRM一次性读/写。 下面是一个在汇编语言程序中访问C语言程序全局变量的例子,它读取全局变量globvar,并将其加2后写回。程序中变量globvar是在C语言程序中声明的全局变量。 示例 C语言程序全局变量在汇编语言程序中的访问。 AREA globals,CODE,READONLY EXPORT asmsubroutine ;用EXPORT伪操作声明该变量可被其他文件引 ;用,相当于声明了一个全局变量 IMPORT globvar ;用IMPORT伪操作声明该变量时在其他文件中定 ;义的,在本文件中可能要用到该变量 asmsubroutine LDR R1,=globvar ;从文字池读globvar的地址,并将其保存到R1 LDR R0,[R1] ;再将其值读入到寄存器R0中 ADD R0,R0,#2 STR R0,[R1] ;修改后再将寄存器R0的值赋予变量globvar MOV PC,LR END 凌阳教育,专注嵌入式人才培养多年,完善的培养方案,强大的师资,合理的课程安排,成功从小白蜕变为嵌入式工程师。想了解凌阳教育,或者获得更多嵌入式学习资料的免费下载,请点击www.sunplusedu.com访问凌阳教育官网
|