ARM/Thumb汇编语言更新:三菱通讯协议手册
需积分: 0 113 浏览量
更新于2024-08-09
收藏 5.66MB PDF 举报
"ARM汇编语言变更-三菱通讯协议参考手册"
在ARM处理器的汇编语言中,随着时间的推移,语法经历了一些显著的变更。这些变更主要体现在对指令的使用方式、寻址模式以及条件码的支持上,提升了编程的灵活性和兼容性。以下是这些变更的详细说明:
1. LDM和STM的默认寻址模式:
以前,LDM(Load Multiple)和STM(Store Multiple)指令默认采用IA(Increment After)模式,现在它们首选LDMIA(Load Multiple Increment After)和STMIA(Store Multiple Increment After)。这使得在处理连续内存区域时更加高效。
2. PUSH和POP的扩展:
现在,PUSH和POP助记符可以用于ARM和Thumb处理器中的降序满堆栈操作,如STMFD(Store Multiple to Stack, Full Descending)和LDMFD(Load Multiple from Stack, Full Descending),以及在ARM和Thumb中直接使用PUSH和POP,增强了通用性。
3. 移位指令的简化:
在ARM和Thumb中,可以直接使用LSL、LSR、ASR、ROR和RRX等移位指令的助记符,而不再需要像以前那样使用MOV指令配合移位操作。例如,`MOV Rd, Rn, LSL shift`现在可以直接写作`LSL Rd, Rn, shift`,使得代码更简洁。
4. PC相对寻址的改变:
以前的PC(Program Counter)相对寻址方式被新的label格式替代,不允许使用offset格式,如`LDR Rd, [pc, #offset]`现在应改为`LDR Rd, label`,增强了代码的可读性。
5. 双字内存访问:
在双字内存访问中,现在可以指定两个寄存器,如`LDRD Rd, Rd2, addr_mode`。尽管如此,仍需遵循关于可用寄存器组合的规则。
6. 条件码的使用:
`{cond}`条件码现在可以作为所有指令的最后一个元素,如`ADD{cond}S`。同时,在ARM和Thumb-2代码中,可以结合使用条件码和IT(If-Then)指令,如`ADDEQ r1, r2, r3`和`LDRNE r1, [r2, r3]`。这允许更精细地控制有条件执行的指令序列。
7. 减少的限制:
以前,如果目标寄存器与第一个操作数相同,某些指令的双寄存器形式是不允许的。现在,这个限制被放宽,如`ADD r1, r1, r3`是合法的,提高了代码效率。
这些变更在RealView编译工具的不同版本中逐步引入,目的是为了提高代码的可移植性和兼容性,同时也简化了程序员的工作。然而,尽管ARM汇编语言变得更加灵活,但使用时仍需遵循相应的规则,以确保代码的正确性和可维护性。在编写ARM汇编代码时,理解这些变更对于优化和调试至关重要。
2024-02-18 上传
2024-10-24 上传
2024-10-24 上传
2024-10-24 上传
菊果子
- 粉丝: 50
- 资源: 3797
最新资源
- 掌握Jive for Android SDK:示例应用的使用指南
- Python中的贝叶斯建模与概率编程指南
- 自动化NBA球员统计分析与电子邮件报告工具
- 下载安卓购物经理带源代码完整项目
- 图片压缩包中的内容解密
- C++基础教程视频-数据类型与运算符详解
- 探索Java中的曼德布罗图形绘制
- VTK9.3.0 64位SDK包发布,图像处理开发利器
- 自导向运载平台的行业设计方案解读
- 自定义 Datadog 代理检查:Python 实现与应用
- 基于Python实现的商品推荐系统源码与项目说明
- PMing繁体版字体下载,设计师必备素材
- 软件工程餐厅项目存储库:Java语言实践
- 康佳LED55R6000U电视机固件升级指南
- Sublime Text状态栏插件:ShowOpenFiles功能详解
- 一站式部署thinksns社交系统,小白轻松上手