当前位置:首页 > 工业控制 > 电子设计自动化
[导读]在ARM C语言程序中使用关键词 ̄asm来标识一段汇编指令程序,其格式如下。 其中,asm后面的括号中必须是一个单独的字符串,该字符串中不能包含注释语句。 在C/C++程序中使用内嵌的汇编指令应注意以下事项。 在汇编指

在ARM C语言程序中使用关键词 ̄asm来标识一段汇编指令程序,其格式如下。

其中,asm后面的括号中必须是一个单独的字符串,该字符串中不能包含注释语句。

在C/C++程序中使用内嵌的汇编指令应注意以下事项。

在汇编指令中,逗号(,)用作分隔符。因此如果指令中的C/C++表达式中包含有逗号(,),则该表达式应该被包含在括号中。例如:

其中,(f(),Z)为C/C++表达式

如果在指令中使用物理寄存器,则应该保证该寄存器不会被编译器在计算表达式值时破坏。例如,在下面的代码段中,编译器通过程序调用来计算表达式x/y的值。在这个过程中编译器破坏了寄存器R2、R3、IP、LR的值;更新了CPSR寄存器的NZCV条件标志位;并在寄存器R0中返回表达式的商,在寄存器RI中返回表达式的余数。这时程序中寄存器R0的数据就丢掉了。

这种情况下可以用C变量来代替第1条指令中的物理寄存器RO,如下所示。

这时编译器将会为变量cvar分配合适的寄存器,从而避免冲突的发生。如果编译器不能分配合适的寄存器,那么它将报告错误。例如,在下面的代码段中,由于编译器将会展开ADD指令,在展开时会用到P寄存器,从而破坏了第1条指令为IP寄存器赋的值,这时编译器将报告错误。

不要使用物理寄存器去引用一个C变量。比如,在下面的例子中,用户可能认为进入子程序example1中后,参数x的值保存在寄存器RO中,因而在内嵌的汇编指令中直接使用寄存器RO,最后返回结果。实际上,编译器认为子程序中没有作任何有意义的操作,于是将该段汇编代码优化掉了,从而返回的结果与输八的参数值相同,并没有做加1操作。

对于内嵌汇编器可能会用到的寄存器,编译器自己会保存和恢复这些寄存器,用户不用保存和恢复这些寄存器。除常量寄存器CPSR和寄存器SPSR外,其他寄存器必须先赋值后读取,否则编译器将会报错。例如,在下面的例子中,第1条指令在没有给寄存器R0赋值前读取其值,这是错误的;而最后一条指令恢复寄存器R0的值,也是没有必要的。



来源:ks990次

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

阿联酋迪拜2025年8月26日 /美通社/ -- 纳斯达克上市公司Robo.ai Inc.今日正式宣布完成品牌焕新升级,并于8月26日正式启用全新纳斯达克股票代码"...

关键字: AI 人工智能 代码 智能科技

北京2025年8月13日 /美通社/ -- 近日,北京积算科技有限公司(以下简称"积算科技")推出一站式AlphaFold3在线算力服务,现已开放免费使用。其内置优化后的AlphaFold3模型,支持...

关键字: ALPHA 代码 图形化 蛋白质

 米兰诺维奇博士提出"语言能力双轨进化论",动态命题技术破解安全性困局 贵阳2025年7月23日 /美通社/ -- 7月22日,在第八届英语教学与测评学术研讨会上,国际语言测评权威专家、朗...

关键字: AI 人工智能 指令 研讨会

北京2025年7月21日 /美通社/ -- 浪潮信息宣布元脑企智一体机已率先完成对Kimi K2 万亿参数大模型的适配支持,并实现单用户70 tokens/s的流畅输出速度,为企业客户高效部署应用大模型提供高处...

关键字: 模型 AGENT TOKEN 代码

7月18日,一则“微信安卓安装包出现5处fxxk”的话题,迅速登上微博热搜,吸引了众多网友的热议和关注。

关键字: 代码 程序员

北京 2025年7月14日 /美通社/ -- 近日,主线科技为广州港设备自动化改造示范区项目圆满完成了纯电集卡的自动驾驶技术升级,并将其商业化交付,助力项目顺利迈入"前沿设备远控半自动+堆场设备全自动+水平运...

关键字: 智能化 自动化 线控 指令

广州 2025年7月4日 /美通社/ -- 日前,在德国慕尼黑机器人及自动化技术展览会(Automatica)期间,国际独立第三方检测、检验和认证机构德国莱茵TÜ...

关键字: 自动化 CE 工业机器 指令

广州 2025年7月4日 /美通社/ -- 日前,在德国慕尼黑机器人及自动化技术展览会(Automatica)期间,国际独立第三方检测、检验和认证机构德国莱茵TÜV大中华区(简称"T...

关键字: 指令 电磁兼容 协作机器人 AN

共鉴AI未来,缅怀先辈贡献 深圳 2025年5月21日 /美通社/ -- 5月16日下午,深圳市金澄智创AI+传承迎来了乔迁之喜,一场意义非凡的活动在新址盛大举行。活动现场星光熠熠,庄世平前辈之子庄荣新先生、南方财经...

关键字: AI AI技术 BSP 代码

上海 2025年5月15日 /美通社/ -- 5月12日,国际独立第三方检测、检验和认证机构德国莱茵TÜV大中华区(简称"TÜV莱茵"...

关键字: 机器人 CE 指令 软硬件
关闭