从0学ARM:MDK和GNU伪指令区别
ARM邪猎文章,请点击以下汇总链接:
《从0学arm合集》
一、MDK和GNU伪指令区别
我们在学习汇编代码的时候经过会看到以下两种风格的代码:
gnu代码开头是:
.global _start
_start: @汇编入口
ldr sp,=0x41000000
.end @汇编程序结束
MDK代码开头是:
AREA Example,CODE,READONLY ;声明代码段Example
ENTRY ;程序入口
Start
MOV R0,#0
OVER
END
这两种风格的代码是要使用不同的编译器,我们之前的实例代码都是MDK风格的。
那么多对于我们初学者来说要学习哪种风格呢?答案是肯定的,学习GNU风格的汇编代码,因为做Linux驱动开发必须掌握的linux内核、uboot,而这两个软件就是GNU风格的。
为了大家不要把过多精力浪费在暂时没用的知识上,下面我们只讲GNU风格汇编。
二、GNU汇编书写格式:1. 代码行中的注释符号:
‘@’ 整行注释符号:‘#’ 语句分离符号:
直接操作数前缀: ‘#’ 或 ‘$’
2. 全局标号:
标号只能由a~z,A~Z,0~9,“.”,_等(由点、字母、数字、下划线等组成,除局部标号外,不能以数字开头)字符组成,标号的后面加“:”。
段内标号的地址值在汇编时确定;
段外标号的地址值在连接时确定。
3. 局部标号:
局部标号主要在局部范围内使用而且局部标号可以重复出现。它由两部组成开头是一个0-99直接的数字局部标号 后面加“:”
F:指示编译器只向前搜索,代码行数增加的方向 / 代码的下一句
B:指示编译器只向后搜索,代码行数减小的方向
注意局部标号的跳转,就近原则「举例:」
文件位置
arch/arm/kernel/entry-armv.S

图片新闻
最新活动更多
-
6月13日立即参评>> 【评选】维科杯·OFweek2025中国工业自动化及数字化行业年度评选
-
7.30-8.1火热报名中>> 全数会2025(第六届)机器人及智能工厂展
-
7月30-31日报名参会>>> 全数会2025中国激光产业高质量发展峰会
-
即日-2025.8.1立即下载>> 《2024智能制造产业高端化、智能化、绿色化发展蓝皮书》
-
精彩回顾立即查看>> 宾采尔激光焊接领域一站式应用方案在线研讨会
-
精彩回顾立即查看>> 【在线会议】安森美Hyperlux™ ID系列引领iToF技术革新
推荐专题
- 1 智造赋能,生态共融:大联大携手产业伙伴,共绘新质工业宏伟蓝图
- 2 谁将成为行业榜样?维科杯·OFweek2025中国工业自动化及数字化行业年度评选等您来参与!
- 3 开目新一代MOM:AI赋能高端制造的破局之道
- 4 【重磅来袭】6月17日上海见!全球智造巨头聚首,60余场前沿论坛,制造业数字化盛会邀您共启数智破局之旅!
- 5 当数智工业邂逅大湾区,看PHIIDF2025如何破界,链动全球!
- 6 安森美正式参评“维科杯·OFweek 2025中国工业自动化与数字化行业优秀产品奖”
- 7 世界计量日盛会启幕,聚焦测量体系变革:质量、效率与动力
- 8 iEi威强电邀您共襄AIAE Expo 2025北京国际工业自动化盛会,探索智能工业新边界!
- 9 欧姆龙正式参评“维科杯·OFweek 2025中国工业自动化与数字化行业优秀产品奖”
- 10 展会首日速递 | iEi威强电亮相北京AIAE Expo 2025,客户云集共话智能工业未来
发表评论
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论