`

Linux Arm GNU Compiler 语法小结

 
阅读更多

以下分析及总结结果并未进行运行确认。

 

任何汇编行都是如下结构:
[:] [} @ comment
[:] [} @ 注释
Linux ARM 汇编中,任何以冒号结尾的标识符都被认为是一个标号,而不一定非要在一行的开始。

标号只能由a~z,A~Z,0~9,“.”,_等字符组成。当标号为0~9的数字时为局部标号,局部标号可以重复出现,使用方法如下:
  标号f: 在引用的地方向前的标号
  标号b: 在引用的地方向后的标号

.section伪操作
用户可以通过.section伪操作来自定义一个段,格式如下:
.section section_name [, "flags"[, %type[,flag_specific_arguments]]]
每一个段以段名为开始, 以下一个段名或者文件结尾为结束。这些段都有缺省的标志(flags),连接器可以识别这些标志。(与armasm中的AREA相同)。
下面是ELF格式允许的段标志
含义
a 允许段
w 可写段
x 执行段

Linux汇编程序中的宏定义
格式如下:
.macro 宏名 参数名列表 @伪指令.macro定义一个宏
    宏体
.endm   @.endm表示宏结束
如果宏使用参数,那么在宏体中使用该参数时添加前缀“/”。宏定义时的参数还可以使用默认值。
可以使用.exitm伪指令来退出宏。

 

寄存器规范:

r0,r1,r2,r3  四个寄存器在函数调用时不保证保存,需要程序员在调用前进行保存。因为这四个寄存器将被用于函数调用的前四个参数(32bits,如果64bits则会占用两个)保存。函数调用返回时会暂存使用。
r4~r11: 变量寄存器
r9: sb 静态基址
r10: sl 堆栈限制
r11: fp 帧指针
r12: ip 过程调用中间临时寄存器
r13: sp 堆栈指针
r14: lr 链接寄存器
r15: pc 程序计数器
分享到:
评论

相关推荐

    GNU Assembler, GNU Tools for ARM Embedded Processors

    该文档可能详细介绍了GNU Assembler for ARM的各个方面的使用方法,包括命令行选项、输入输出文件格式、错误和警告消息、语法细节以及指令和节的使用等。这些内容对于在嵌入式系统开发中编写、调试和优化汇编代码至...

    ARM汇编语法的相关介绍

    ARM汇编语法中经常使用的gcc(GNU Compiler Collection)是一种集成多种编程语言的编译器集合,可以将高级语言代码如C、C++等编译为机器代码,同样也支持汇编语言的编写。gcc通过一系列的预处理器指令、宏(macro)...

    linux_ARM9.0.rar_arm9.0_linux arm

    3. **集成的C和C++编译器**:在Linux ARM9开发中,GCC(GNU Compiler Collection)通常被用作编译器,因为它支持多种语言,包括C和C++,并且可以生成针对特定架构(如ARM9)的代码。编译器将高级语言源代码转换为...

    GNU开发ARM

    在ARM开发中,GNU Compiler Collection (GCC) 能够将高级语言如C或C++转换为ARM处理器可执行的机器代码。链接器则负责将编译后的对象文件合并成一个可执行文件。binutils包含了as汇编器,用于将汇编代码转换为二进制...

    MDK5 宏定义CC_ARM

    - **GNU Compiler Collection (gcc)**:由GNU项目提供的开源编译器。 这些工具链都支持Cortex-M处理器,并且CMSIS为它们提供了统一的接口,以便于开发者能够更容易地在不同的编译环境中编写和维护代码。 #### MDK-...

    ARM的嵌入式Linux移植应用实例

    - **简介**:GCC(GNU Compiler Collection)是Linux平台下最重要的开发工具之一,不仅支持C和C++语言,还支持其他多种编程语言。 - **使用方法**:`gcc [options] [filenames]`。 - **注意**:对于ARM架构的...

    EVMiS_Assembler_v_GNU-Linux_AssemblerGNU-Linux_

    相比之下,GNU-Linux汇编器,通常指的是GCC(GNU Compiler Collection)的一部分,即gas(GNU Assembler)。它支持多种处理器架构,包括x86、ARM等,并且与Linux系统紧密集成。使用gas,开发者可以编写出能在各种...

    GCC_arm-gcc-linux.zip_arm linux gcc

    GCC(GNU Compiler Collection),是GNU项目的一部分,它是一套开源的编译器工具链,支持多种编程语言,包括C、C++、Objective-C、Fortran、Ada和Go等。在嵌入式开发领域,特别是针对ARM架构的Linux系统,GCC扮演着...

    用gnu及Makefile设计ARM程序

    首先,GNU工具链是开源的开发工具集合,主要由GNU Compiler Collection (GCC)组成,它支持多种编程语言,包括C、C++、Objective-C、Fortran和Ada。对于ARM架构,GCC提供了针对ARM处理器的交叉编译能力,允许开发者在...

    MDK下GNU编译器的使用

    首先,MDK本身默认使用的编译器是ARM编译器(ARM Compiler),但同时也支持使用GNU Compiler Collection (GCC),这使得开发者能够利用开源的GCC工具链进行编译工作,享受其丰富的优化选项和跨平台兼容性。...

    arm Linux嵌入式开发

    4. **GCC**:GCC(GNU Compiler Collection)是GNU项目提供的一套多语言编译器集合,支持C、C++、Objective-C、FORTRAN、Java、Ada等多种编程语言。GCC不仅是一个单一的编译器,实际上包含了一系列前端和后端组件,...

    ARM学习报告by杜云海 附源码

    GNU工具链包括GCC(GNU Compiler Collection)、GDB(GNU Debugger)等,它们是开发者在Linux环境下进行ARM程序开发的必备工具。GCC可以将高级语言(如C、C++)编译为针对特定架构的目标代码,而GDB则用于调试这些...

    ARM的嵌入式Linux移植111.pdf

    1. **GCC编译器**:GCC(GNU Compiler Collection)是Linux下的标准编译器,对于ARM平台,我们需要使用arm-linux-gcc来进行编译。这个编译器能够将源代码转换为ARM处理器可执行的目标代码。基本用法是`gcc [options]...

    bison-2.7.1.tar.gz

    例如,GCC(GNU Compiler Collection)的C++前端就使用了Bison来解析C++的语法。此外,通过Bison,开发者还可以创建自定义的命令行工具,实现复杂的文本解析任务。 总之,Bison是Linux下构建解析器的强大工具,其...

    Linux常用软件

    arm-linux-gcc是GNU Compiler Collection(GCC)的一个变种,专门用于编译针对ARM架构的Linux应用程序。ARM处理器广泛应用于嵌入式设备、移动设备和服务器等领域。arm-linux-gcc集成了编译器、链接器和相关的工具,...

    嵌入式Linux的软件开发环境分析(ppt-75页).ppt

    GCC(GNU Compiler Collection)是GNU组织开发的一款自由开源编译器,可以编译C、C++、Java等语言。ARM交叉编译器是专门为ARM处理器设计的编译器,可以编译ARM处理器上的程序。 调试技术是指在软件开发过程中检测和...

    ARM开发详解教科书.rar

    5. **编译工具链**:GCC(GNU Compiler Collection)是进行ARM开发的关键工具,用于将高级语言代码转换为ARM可执行的二进制代码。GDB(GNU Debugger)则是用于调试程序的工具,可以帮助开发者定位和修复错误。 6. *...

    智能楼宇安全监控报警系统 开发环境及技术栈:ARM-Linux-gcc、Linux-C.zip

    3. **GCC编译器**:GNU Compiler Collection(GCC)是开源的编译器套件,支持多种编程语言,包括C。在Linux环境中,GCC用于将源代码编译成可在ARM处理器上运行的机器码。这使得开发者能够在任何支持GCC的平台上编写...

    Linux开发环境

    这些工具包括但不限于GCC(GNU Compiler Collection)编译器、GDB(GNU Debugger)调试器、Makefile构建系统、Git版本控制工具以及各种文本编辑器如Vim或Emacs。GCC用于将源代码编译为可执行文件,GDB则帮助我们在...

Global site tag (gtag.js) - Google Analytics