0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

零基础学ARM:MDK和GNU伪指令区别

电子设计 来源:电子设计 作者:电子设计 2020-12-24 18:34 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • ARM
    ARM
    +关注

    关注

    135

    文章

    9588

    浏览量

    393665
  • 伪指令
    +关注

    关注

    0

    文章

    12

    浏览量

    10844
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    web安全工程师高薪正式班渗透白帽零基础网络安全ctfLi(21期)

    获课地址:pan.baidu.com/s/1g64x9D_jp9ufk4uBpQBmvA?pwd=497f 2026 网安人才缺口 300 万+:零基 Web 安全,锁定未来高薪岗 在数字化转型
    的头像 发表于 04-22 15:11 762次阅读

    零基础玩转Linux+Ubuntu实战视频课程

    极速拆解《小白也能学会:Linux+Ubuntu 零基础实战通关课程》 面对这种标榜“零基础”、“通关”的 Linux 长篇大论,绝大多数人的死穴是:把它当成“字典”去啃。他们试图记住 ls -l
    发表于 04-18 16:16

    2小时搞定鸿蒙应用!零基础做出你的鸿蒙“处女作”

    当下,低门槛开发正成为生态扩张的最强推力,而鸿蒙生态的快速壮大,也让越来越多零基础小白蠢蠢欲动,想加入开发大军。但繁琐的配置流程、深奥的代码,也让很多人打起了退堂鼓。近日,鸿蒙开发者官网全新上线
    的头像 发表于 04-17 14:04 100次阅读
    2小时搞定鸿蒙应用!<b class='flag-5'>零基</b>础做出你的鸿蒙“处女作”

    MDK-ARM平台下的fft介绍

    MDK-ARM平台 #include &quot;arm_math.h&quot; #include &quot
    发表于 01-22 07:35

    手把手教学:零基础玩转GNSS调试工具iNavTool!

    想要高效完成GNSS模块的调试工作,离不开专业工具的支持。iNavTool因其用户友好的界面和强大的调试能力,受到广泛欢迎。本文将以零基础用户为对象,通过详细步骤指导,带您一步步掌握iNavTool
    的头像 发表于 11-01 19:35 634次阅读
    手把手教学:<b class='flag-5'>零基</b>础玩转GNSS调试工具iNavTool!

    RISC-V指令集手册中F指令部分

    单独访问,frrm/fsrm伪指令用于单独访问fcsr的frm域,frflags/fsflags伪指令可以单独访问fcsr的fflags域。fcsr中31-8位进行保留,以便后续扩展,7-5位为舍入模式
    发表于 10-22 08:18

    免焊BNC接头接法:零基础快速安装指南与信号稳定技巧

    通过以上步骤,即使零基础用户也能快速完成免焊BNC接头的安装,确保视频、音频信号稳定传输,满足监控、音视频工程等场景需求。
    的头像 发表于 08-28 16:59 2488次阅读
    免焊BNC接头接法:<b class='flag-5'>零基</b>础快速安装指南与信号稳定技巧

    【教程】零基础!手把手教你使用STM32F4进行E22-400T22S编程通信

    通过本文带大家零基础使用STM32F407VET6单片机进行E22-400T22S模块编程并进行简单的通信,当然如果学会了,也可以举一反三应用于E22、E220、E32所有模块上。一STM32环境
    的头像 发表于 07-03 19:32 1822次阅读
    【教程】<b class='flag-5'>零基</b>础!手把手教你使用STM32F4进行E22-400T22S编程通信

    RISC-V和ARM有何区别

    与RISC-VARM是一种精简指令集(RISC),以该指令集为基础的处理器通常被称为ARM芯片,它在全球范围内得到了极为广泛的应用。而RISC-V也是精简指令集,是美国加
    的头像 发表于 06-24 11:38 2247次阅读
    RISC-V和<b class='flag-5'>ARM</b>有何<b class='flag-5'>区别</b>?

    零基础学习LuatOS编程:快速上手开发实战教程!

    无论你是刚接触物联网编程的新手,还是希望拓展技能的技术爱好者,本教程将为零基础的读者提供一条清晰的LuatOS学习路径。从安装开发工具到编写第一个程序,我们将通过实例讲解核心概念,助你快速实现从理论
    的头像 发表于 06-13 17:27 748次阅读
    <b class='flag-5'>零基</b>础学习LuatOS编程:快速上手开发实战教程!

    跟老齐Python:从入门到精通

    本帖最后由 yuu_cool 于 2025-6-3 16:52 编辑 本资料是面向编程零基础读者的Python 入门教程,内容涵盖了Python 的基础知识和初步应用。以比较轻快的风格,向零基
    发表于 06-03 16:10

    STC8H 单片机 + RA8889/RA6809:重新定义嵌入式触控交互_高流畅、低延迟、零基础的人机界面(一)

    STC8H 单片机 + RA8889/RA6809:重新定义嵌入式触控交互_高流畅、低延迟、零基础的人机界面
    的头像 发表于 05-28 16:01 1482次阅读
    STC8H 单片机 + RA8889/RA6809:重新定义嵌入式触控交互_高流畅、低延迟、<b class='flag-5'>零基</b>础的人机界面(一)

    一技在手,医疗无忧!零基础转行高薪医疗维修工程师

    ,剩下的就看个人能力了,对医疗器械维修感兴趣但迷茫的可联系我们,帮你解决疑难问题,带你入门医疗维修行业! 一技在手,医疗无忧!零基础转行高薪医疗维修工程师!” “缺口40万+,月薪过万!抢占医疗行业
    发表于 05-15 10:22

    【「零基础开发AI Agent」阅读体验】+读《零基础开发AI Agent》掌握扣子平台开发智能体方法

    收到发烧友网站寄来的《零基础开发AI Agent》这本书已经有好些天了,这段时间有幸拜读了一下全书,掌握了一个开发智能体的方法。 该书充分从零基础入手,先阐述了Agent是什么,它的基本概念和知识
    发表于 05-14 19:51

    【「零基础开发AI Agent」阅读体验】+ 入门篇学习

    很高兴又有机会学习ai技术,这次试读的是「零基础开发AI Agent」,作者叶涛、管锴、张心雨。 大模型的普及是近三年来的一件大事,万物皆可大模型已成为趋势。作为大模型开发应用中重要组成部分,提示词
    发表于 05-02 09:26