GNU ARM汇编语法原理及操作解析

 更新时间:2020年01月16日 11:52:27   投稿:yaominghui   我要评论
这篇文章主要介绍了GNU ARM汇编语法原理及操作解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了GNU ARM汇编语法原理及操作解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

ARM汇编源程序有两种风格:

  • ARM官方推荐的风格,所有的指令都大写。常用在windows下的IDE中。
  • GNU风格的汇编风格,所有的指令都小写。常用在与Linux相关的工具中。

注释符号:

GNU arm汇编所采用的注释符号是@符号,同样c语言中的 // 和 /* */ 两种类型的注释方法在GNU arm汇编中也被支持。

宏定义:

在GNU arm汇编程序中可以使用伪操作 .equ 来定义宏,但是同样也支持c语言中的 #define 形式定义的宏。在实际编程中通常都采用#define来定义宏。除了支持#define宏之外,GNU arm汇编还支持 条件编译 和 #include 的用法。

标号:

在GNU arm汇编中以冒号结尾的符号称为标号。标号本质上代表着地址。

常用的伪操作:

  • .global:用来将标号声明为外部链接属性,即可以被其他文件使用
  • .extern:用来声明标号为外部标号,和c语言中的extern关键字是类似的
  • . :用来代表当前指令的地址,常用于实现 死循环 中,如 b .
  • .ascii、.word、.short、.byte:用来定义数据,注意 .ascii 伪操作在定义字符串的时候需要在后面添加\0。
  • .section:用来自定义段。GNU arm汇编预定义的段名有 .text .data .bss
  • .align :.align n 即采用 2^n 字节对齐方式。比如 .align 2 即采用2^2=4字节对齐。具体是指.align后面的指令的地址需要进行2^n字节对齐。
  • .balign[wl]:.balign[wl] n, 0xXXXXXXXX 即采用 n 字节对齐方式,并根据[wl]来决定采用几字节填充。如果没有w或l,则采用字节填充;如果是w,则采用双字节填充;如果是l,则采用4字节填充。
  • .end:表示整个汇编程序结束
  • .arm/.code 32:表示采用的是ARM指令
  • .thumb/.code 16:表示采用的是Thumb指令
  • .comm:用来在bss段中申请一段内存空间,也就是通过这个伪指令可以让bss段的大小可以不占用可执行文件的大小,只需利用.comm来记录需要多大的空间即可。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 详解汇编语言中中括号[]作用及lea和mov指令的区别

    详解汇编语言中中括号[]作用及lea和mov指令的区别

    这篇文章主要介绍了汇编语言中中括号[]作用及lea和mov指令的区别,本文分步骤给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • 汇编语言乘指令 MUL、IMUL的具体使用

    汇编语言乘指令 MUL、IMUL的具体使用

    这篇文章主要介绍了汇编语言乘指令 MUL、IMUL的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • iOS汇编入门教程之ARM64汇编基础教程

    iOS汇编入门教程之ARM64汇编基础教程

    这篇文章主要介绍了iOS汇编入门教程之ARM64汇编基础教程,本文通过例子给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • 汇编程序成绩排序的实现

    汇编程序成绩排序的实现

    这篇文章主要介绍了汇编程序成绩排序的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • 汇编语言之寄存器详解

    汇编语言之寄存器详解

    这篇文章主要介绍了汇编语言之寄存器详解,需要的朋友可以参考下
    2020-01-01
  • 详解汇编语言RCL(带进位循环左移)和RCR(带进位循环右移)指令

    详解汇编语言RCL(带进位循环左移)和RCR(带进位循环右移)指令

    这篇文章主要介绍了汇编语言RCL(带进位循环左移)和RCR(带进位循环右移)指令的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-01-01
  • asm基础——汇编指令之in/out指令

    asm基础——汇编指令之in/out指令

    这篇文章主要介绍了asm基础——汇编指令之in/out指令,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 浅析shellcode 反汇编模拟运行及调试方法

    浅析shellcode 反汇编模拟运行及调试方法

    这篇文章主要介绍了shellcode 反汇编,模拟运行以及调试方法,本文给大介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • 汇编语言位向量(位映射)的实现

    汇编语言位向量(位映射)的实现

    这篇文章主要介绍了汇编语言位向量(位映射)的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • 汇编语言XOR指令:对两个操作数进行逻辑(按位)异或操作(推荐)

    汇编语言XOR指令:对两个操作数进行逻辑(按位)异或操作(推荐)

    汇编语言(assembly language)是一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。这篇文章主要介绍了汇编语言XOR指令:对两个操作数进行逻辑(按位)异或操作,需要的朋友可以参考下
    2020-01-01

最新评论