ARM处理器内联汇编详解-富士电机用户手册
需积分: 0 6 浏览量
更新于2024-08-10
收藏 4.79MB PDF 举报
"该资源为富士电机fuji alpha5 smart plus用户手册的一部分,主要讨论了在编程过程中涉及的ARM处理器内联汇编指令的参数处理,包括输入、输出参数列表以及被破坏的寄存器列表。"
在ARM处理器的编程中,内联汇编是一个重要的工具,尤其在需要高效、低级的硬件交互时。以下是关于内联汇编参数处理的详细解释:
1. **未指定参数列表**:
当在SWI(Software Interrupt)和BL(Branch and Link)指令后没有明确指定参数列表时,有默认规则。r0至r3用作输入参数,其中r0同时用于存储输出值。r12和r14这两个寄存器的值在函数调用期间会被修改。
2. **输入参数列表**:
输入参数列表用于列出传递给被调用函数或SWI的参数。这些参数可以是表达式、变量或包含表达式的物理寄存器。内联汇编编译器会自动处理参数加载,将它们放入相应的物理寄存器。为了保持与现有代码的兼容性,程序员可以指定物理寄存器名称而不赋值,使得虚拟寄存器中的值会被映射到物理寄存器。
3. **输出参数列表**:
输出参数列表定义了用于存储函数或SWI调用返回值的寄存器或表达式。这些值可以是物理寄存器、可修改的长值表达式或者单个物理寄存器名称。内联汇编会从特定物理寄存器中取出值并赋值给指定的表达式。同样,指定物理寄存器名称不赋值会导致虚拟寄存器被物理寄存器中的值更新。
4. **被破坏的寄存器列表**:
这个列表指明哪些物理寄存器在函数调用中可能会被破坏或改变。如果函数修改了条件标志,PSR(Processor Status Register)必须包含在列表中。BL和SWI指令总是会破坏lr寄存器。若没有提供此列表,r0至r3、ip、lr和PSR默认视为被破坏。
注意点:
- BL指令与B指令的区别在于,B指令只能进行程序跳转,不能用于子程序调用。
- 在内联汇编中,可以定义标号作为跳转目标,也可以与C/C++的“goto”语句配合使用。
- 不同版本的ARM编译器可能对内联汇编语法有不同的要求,使用时需参考对应版本的文档。
在ARM系列处理器中,内联汇编允许程序员直接操作硬件层面,以实现高效的代码,但同时也需要对处理器的寄存器管理有深入理解。ARM处理器由于其高性能、低功耗的特点,广泛应用于嵌入式系统、消费电子和移动设备。
2019-04-28 上传
2023-10-17 上传
2023-09-05 上传
2023-09-14 上传
2024-01-18 上传
2023-11-18 上传
2023-11-27 上传
幽灵机师
- 粉丝: 34
- 资源: 3922
最新资源
- ES管理利器:ES Head工具详解
- Layui前端UI框架压缩包:轻量级的Web界面构建利器
- WPF 字体布局问题解决方法与应用案例
- 响应式网页布局教程:CSS实现全平台适配
- Windows平台Elasticsearch 8.10.2版发布
- ICEY开源小程序:定时显示极限值提醒
- MATLAB条形图绘制指南:从入门到进阶技巧全解析
- WPF实现任务管理器进程分组逻辑教程解析
- C#编程实现显卡硬件信息的获取方法
- 前端世界核心-HTML+CSS+JS团队服务网页模板开发
- 精选SQL面试题大汇总
- Nacos Server 1.2.1在Linux系统的安装包介绍
- 易语言MySQL支持库3.0#0版全新升级与使用指南
- 快乐足球响应式网页模板:前端开发全技能秘籍
- OpenEuler4.19内核发布:国产操作系统的里程碑
- Boyue Zheng的LeetCode Python解答集