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

    文章

    8653

    浏览量

    361825
  • 伪指令
    +关注

    关注

    0

    文章

    12

    浏览量

    10467
收藏 人收藏

    评论

    相关推荐

    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

    fpga封装技术和arm架构有什么区别

    FPGA封装技术与ARM架构在多个方面存在显著的区别
    的头像 发表于 03-26 15:50 264次阅读

    讲讲ARM指令集格式以及常用的ARM汇编指令

    对于搞嵌入式驱动或者操作系统的人来说,掌握汇编语言的使用还是比较重要的,毕竟有时候在分析定位问题的时候,多多少少都会有汇编的身影。本文主要讲讲ARM指令集格式以及常用的ARM汇编指令
    的头像 发表于 11-08 12:34 1045次阅读
    讲讲<b class='flag-5'>ARM</b><b class='flag-5'>指令</b>集格式以及常用的<b class='flag-5'>ARM</b>汇编<b class='flag-5'>指令</b>

    MCS51汇编中的DATA是伪指令吗?具体用法是什么?

    MCS51汇编中的DATA是伪指令吗?具体用法是什么?
    发表于 11-02 08:17

    如何在特权模式下用arm汇编指令使能和禁止irq中断?

    如何在特权模式下用arm汇编指令使能和禁止irq中断? 在 ARM 系统中,中断是非常常见的一种事件。在特权模式下,可以使用 ARM 汇编指令
    的头像 发表于 10-19 16:42 797次阅读

    《从开始ARM》个人看法

    的进步, 感觉自己以前的的汇编都不太一样了. 本书没完全看完, 更不要说看懂.以我现在的水平看懂有点难度.后期会多看几遍多实践下. 就现在的观点谈谈个人一点看法和一些建议. 本书讲解的很基础,每个指令
    发表于 09-08 11:53

    ARM KEIL™MDK工具包的操作流程

    本笔记介绍了ARM®KEIL™MDK工具包的操作流程,该工具包采用了μVision®和MicroSemi(Actel™)包含嵌入式ARM®Cortex™-M3处理器的全新智能融合2(SF2)系列
    发表于 09-04 06:16

    《从开始ARM》+ARM技术的深耕与思考

    本书特点 一是循序渐进,由浅入深。本书针对零基础的初学者,以FS4412开发板(基于ARMCortex-A9架构)为例,首先从开发环境的安装和配置及ARM基本指令等相关基础知识开始讲解,然后详细
    发表于 09-03 20:56

    《从开始ARM》真心适合新手小白

    ARM架构一直以来都备受欢迎,无论是在移动设备、嵌入式系统还是服务器领域。然而,对于初学者而言,ARM架构可能显得复杂而晦涩。《从开始ARM
    发表于 09-02 15:29

    ARM KEIL™MDK工具包的操作流程

    本笔记介绍了ARM®KEIL™MDK工具包的操作流程,该工具包采用了μVision®和MicroSemi的SmartFusion2(™)系列,该系列包含嵌入式ARM®Cortex™-M3处理器
    发表于 08-29 07:39

    rh850和arm区别

    rh850和arm区别 RH850和ARM是两种不同的处理器架构。RH850是一款Renesas芯片家族,它基于32位RISC架构,广泛应用于汽车电子和工业控制系统等领域。ARM也是
    的头像 发表于 08-15 16:22 939次阅读

    ARM Keil MDK发行说明

    Arm Keil MDK(微控制器开发套件)支持基于Arm的微控制器设备的软件开发和调试。MDK的详细描述可以在完整的用户指南选择中找到,该选择可以在µVision项目工作区-书籍页面
    发表于 08-11 06:04

    什么是 GNU/Linux?

    Linus本人曾经争辩说,将Linux称为GNU/Linux简直是荒谬的。
    发表于 06-13 09:14 2646次阅读
    什么是 <b class='flag-5'>GNU</b>/Linux?

    hpmicro fork出来的riscv-gnu-toolchain与上游有什么区别

    找遍官网没找到先关信息。有几个疑问 hpmicro fork出来的riscv-gnu-toolchain 与上游有何区别? 看到论坛里有文章说官方SDK提供了编译好的toolchain,但我在SDK 1.0版本的zip文件里没找到。官方不再提供了吗?
    发表于 05-26 07:13