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
    +关注

    关注

    134

    文章

    9091

    浏览量

    367509
  • 伪指令
    +关注

    关注

    0

    文章

    12

    浏览量

    10512
收藏 人收藏

    评论

    相关推荐

    零基础入门PCB工程师

    各位前辈大家好,零基础入门PCB工程师,有什么学习资料推荐吗?
    发表于 11-27 16:54

    你听说过MIPS吗?它和ARM有何区别

    基于MIPS指令集的君正X2000处理器。有些工程师对于MIPS不怎么了解,究竟MIPS和ARM有何区别呢?本期文对MIPS做一个简单介绍。MIPS和ARM都属于
    的头像 发表于 11-23 01:05 216次阅读
    你听说过MIPS吗?它和<b class='flag-5'>ARM</b>有何<b class='flag-5'>区别</b>?

    新唐科技率先发布免费版Arm Keil MDK,助力嵌入式开发

    2024年11月5日,新唐科技正式推出了免费版的Arm® Keil® MDK Nuvoton Edition,成为全球首家向开发者提供Keil MDK完整版本的半导体公司。这款专业开发工具专为
    的头像 发表于 11-06 11:07 872次阅读

    GNU构建裸机系统

    基于AT91SAM7S平台,介绍裸机开发,以闪灯为蓝本,涉及汇编、链接、C/C++、中断等。   无处不在的ARM处理器家族得到了GNU C/C++工具链的良好支持。虽然许多在线和印刷资源关注
    发表于 10-16 17:34 0次下载

    ARM处理器的指令集包括哪些

    ARM处理器的指令集是一个庞大而复杂的系统,它涵盖了多种类型的指令,用于实现数据处理、程序控制、内存访问等多种功能。
    的头像 发表于 09-10 11:15 553次阅读

    ARM处理器和CISC处理器的区别

    ARM处理器和CISC(复杂指令集计算机)处理器在多个方面存在显著的区别。这些区别主要体现在架构原理、性能与功耗、设计目标、应用领域以及市场生态等方面。
    的头像 发表于 09-10 11:10 456次阅读

    电压开关与电流开关的区别

    电压开关(Zero Voltage Switch, ZVS)和电流开关(Zero Current Switch, ZCS)是电力电子威廉希尔官方网站 中两种重要的软开关威廉希尔官方网站 ,它们在提高系统效率、降低开关损耗、减少电磁干扰等方面具有显著优势。以下将详细探讨这两种威廉希尔官方网站 的
    的头像 发表于 07-25 11:18 2567次阅读

    PLC中ALT和ALTP指令区别

    在PLC(可编程逻辑控制器)编程中,ALT和ALTP是两个重要的指令,它们各自具有独特的功能和应用场景。本文将从多个方面对这两个指令进行详细的分析和比较,以便读者能够更深入地理解它们之间的区别
    的头像 发表于 06-17 16:42 3667次阅读

    GNU make中文手册

    电子发烧友网站提供《GNU make中文手册.pdf》资料免费下载
    发表于 06-05 13:22 0次下载

    I2C boot使用ARM GCC编译pass, 改用ARM MDK编译报错怎么解决?

    I2C boot 使用ARM GCC 编译pass, 改用ARM MDK 编译报错如下, 怎么解决,谢谢! cannot open source input file &quot
    发表于 06-03 06:06

    FPGA与ARM的本质区别

    FPGA(Field-Programmable Gate Array)与ARM在多个方面存在本质区别。 首先,从它们的定义和结构上来看,FPGA是一种现场可编程门阵列,属于可编程器件的一种。它的内部
    发表于 04-28 09:00

    FPGA与ARM的本质区别是什么?

    FPGA(Field-Programmable Gate Array)与ARM在多个方面存在本质区别。 首先,从它们的定义和结构上来看,FPGA是一种现场可编程门阵列,属于可编程器件的一种。它的内部
    发表于 04-28 08:56

    零基础小白适不适合鸿蒙开发?

    ,自由流转;统一生态,原生智能。随着鸿蒙生态的壮大,投入鸿蒙开发的IT专业人才越来越多,对于从未接触过此方面零基础的学生而言,也是一次很不错的职业转向和威廉希尔官方网站 提升的好机会。 什么是鸿蒙?   鸿蒙系统(HarmonyOS)是华为技
    的头像 发表于 03-04 17:50 1950次阅读
    <b class='flag-5'>零基</b>础小白适不适合<b class='flag-5'>学</b>鸿蒙开发?

    接地和接是一个概念吗?接地和接的基本目的 工作接地与保护接区别

    接地和接是一个概念吗?接地和接的基本目的 工作接地与保护接区别 保护接地与保护接区别
    的头像 发表于 02-04 15:45 1087次阅读

    arm架构和x86架构区别 linux是x86还是arm

    ARM架构和x86架构是两种不同的计算机处理器架构,它们在体系结构、指令集、应用领域等方面有着明显的区别。Linux操作系统则具有广泛的适配性,可以运行在各种架构上,包括x86和ARM
    的头像 发表于 01-30 13:46 1.8w次阅读