从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


图片新闻
最新活动更多
-
4月17日立即报名 >> 【线下论坛】新唐科技×芯唐南京 2026 年度研讨会
-
4月22日立即报名>> 【在线会议】ADI六款仪器仪表方案助力产品快速上市
-
即日-4.30立即下载>>> 【限时下载】《2025激光行业应用创新发展蓝皮书》
-
5月14日立即下载>> 【白皮书】村田室内外定位解决方案
-
5月29日立即下载>> 【白皮书】工业视觉AI实战白皮书合集
-
5月30日立即报名>> 2026激光行业应用创新发展蓝皮书火热招编中!
推荐专题
- 1 2026,中国工程机械的“分水岭之战”
- 2 海康威视:用“集分式”架构搭建轻、减、省的指挥中心大屏显控系统
- 3 智赋食饮新局:《威图赋能食品饮料行业高效可持续发展白皮书》发布会即将开启!
- 4 开春来深圳,看全球先进精密制造!2026 ITES深圳工业展,即将启幕!
- 5 SEMICON CHINA 2026首日,格创东智携“章鱼智脑”和全场景工业智能体群,开启半导体智造自主决策时代
- 6 格创东智SEMICON CHINA 2026圆满收官,章鱼智脑与全场景智能体群定义工业智能决策新高度
- 7 智启新程,聚势前行,2026 ITES深圳工业展盛大启幕!
- 8 格创东智何军登榜2025福布斯中国科创人物,工业AI革新力获权威认可
- 9 工业 CLAW 破局:“章鱼智脑”,智能工厂仿生式自主决策中枢
- 10 丰田汽车公司为实现碳中和制定的动力总成多路径策略PPT


分享














发表评论
登录
手机
验证码
手机/邮箱/用户名
密码
立即登录即可访问所有OFweek服务
还不是会员?免费注册
忘记密码其他方式
请输入评论内容...
请输入评论/评论长度6~500个字
暂无评论
暂无评论