当前位置: 首页 > news >正文

ARM汇编基础

GNU汇编语法

GNU 汇编语法适用于所有的架构,并不是 ARM 独享的, GNU 汇编由一系列的语句组成,
每行一条语句,每条语句有三个可选部分,如下:

label: instruction @ comment

label 即标号,表示地址位置,有些指令前面可能会有标号,这样就可以通过这个标号得到
指令的地址,标号也可以用来表示数据地址。注意 label 后面的“:”,任何以“:”结尾的标识
符都会被识别为一个标号。
instruction 即指令,也就是汇编指令或伪指令。
@符号,表示后面的是注释,就跟 C 语言里面的“/”和“/”一样,其实在 GNU 汇编文
件中我们也可以使用“/”和“/”来注释。
comment 就是注释内容。
比如如下代码:

add:MOVS R0,#0X12@设置 R0=0X12

上面代码中“add:”就是标号,“MOVS R0,#0X12”就是指令,最后的“@设置 R0=0X12”就
是注释


汇编程序的默认入口标号是_start,不过我们也可以在链接脚本中使用 ENTRY 来指明其它
的入口点,下面的代码就是使用_start 作为入口标号:

.global _start _start:ldr r0,=0x12@r0=0x12

上面代码中.global 是伪操作,表示_start 是一个全局标号,类似 C 语言里面的全局变量一
样,常见的伪操作有:

.byte 定义单字节数据,比如.byte0x12.short定义双字节数据,比如.short0x1234.long定义一个4字节数据,比如.long0x12345678.equ 赋值语句,格式为:.equ 变量名,表达式,比如.equ num,0x12,表示 num=0x12.align 数据字节对齐,比如:.align4表示4字节对齐。.end 表示源文件结束。.global 定义一个全局符号,格式为:.global symbol,比如:.global _start

GNU 汇编同样也支持函数,函数格式如下:

函数名:函数体 返回语句

GNU 汇编函数返回语句不是必须的,如下代码就是用汇编写的 Cortex-A7 中断服务函数:

/* 未定义中断 */Undefined_Handler:ldr r0,=Undefined_Handler bx r0/* SVC 中断 */SVC_Handler:ldr r0,=SVC_Handler bx r0

“Undefined_Handler”就是函数名,“ldr r0, =Undefined_Handler”是函数体,“bx r0”是函数
返回语句,“bx”指令是返回指令,函数返回语句不是必须的。







http://www.jsqmd.com/news/280245/

相关文章:

  • 2026年想找高质量简历模板就来这7个网站
  • 7款AI工具助力学术论文高效撰写的详细解析
  • 基于栅格地图的人工势场法动态路径规划:探索与实践
  • 主流简历模板平台测评:5大工具,覆盖从创意到技术的全场景求职
  • Java面试场景:深入探讨Spring Boot与微服务架构应用
  • 天然蛋白纯化技术:原理与核心层析策略
  • Matlab 中用蒙特卡洛算法模拟电动汽车充电负荷
  • 我基于大模型写了个Telegram群反垃圾广告机器人
  • 揭秘主流AI大模型的系统提示词,助你掌握AI核心技术
  • 金融大模型落地提速170%,2025前三季度数据揭秘银行、证券、保险应用趋势与厂商竞争格局
  • 35岁程序员必看!大模型转型全攻略+学习资源,收藏这篇就够了!
  • P8145 [JRKSJ R4] kth
  • AI助力学术写作:7款工具使用指南与示例
  • CodeFuse大模型学习手册:从自然语言到代码的精准转化,小白也能快速上手(值得收藏)
  • AI应用开发进入工程时代:从千问到评测革命的完整指南(建议收藏)
  • 2026年1月AI搜索优化服务商哪家靠谱?技术vs交付能力vs效果三维测评
  • 2个月构建医学知识库:RAG技术实战全解析 | 程序员必看的大模型应用指南
  • 学术论文AI写作:7款工具操作技巧与案例解析
  • AI智能体架构全景解析:从基础到应用的完整指南
  • 2026全国摄影摄像培训机构哪家好?
  • 2026年1月最新厦门十大靠谱家装公司盘点|选择指南,装修省心无忧
  • 从简单疑问到深刻洞察:大模型“出版“的可能性探索(收藏版)
  • 转行大模型开发必备:知识体系、能力要求与实战指南,非常详细收藏我这一篇就够了
  • Windows下笔记本电脑电池健康度专一简单检测
  • 2026成都最新精装房装修公司top5评测!服务深度覆盖金牛区、新都区、青羊区、成华区等地优质品牌权威榜单发布,匠心赋能构筑理想家居生活.
  • oGI*:本文提出的GNSS/IMU融合+预估控制。 oG*:仅使用GNSS+预估控制。 oGI-和G-:对应的结构解算方法。
  • ARM 中的 SVC 监管调用(Supervisor Call)
  • 2026成都最新旧房装修改造公司top5评测!服务深度覆盖金牛区、新都区、青羊区、成华区等地优质品牌权威榜单发布,品质赋能构筑理想家居.
  • JAVA漫画推文AI漫画系统源码支持小程序+公众号+APP+H5
  • R语言第七章线性回归模型 - 实践