美文网首页
ARM汇编伪指令详解

ARM汇编伪指令详解

作者: 随波逐流007 | 来源:发表于2017-09-22 16:50 被阅读176次

我们做一些操作会有一点麻烦,比方进行一个if then的判断操作。比如要比较a>b,则去调用某个函数,这就要先去比较a,b的值,然后就会跳转,跳转又会比较大小,less than,就是BLLT,然后跳转到loop,我们通过这些来实现if then的操作。循环,先定义一个loop,然后有一些语句跳转到这个语句,然后进行条件判断跳出,然后又进行if then的方式来进行判断。其实这样是很麻烦的。为了方便,引入了相当于宏。c语言里有宏的概念,引入类似于宏的方式,把复杂的有好几天指令进行跳转的完成的小功能级进行新的标签设定,这就是伪指令。

伪指令作用:我们的指令已经可以做各类操作了,但我们操作起来太麻烦了。比如我现在要设置一个值给寄存器R0,但下次我修改了寄存器R0之后又需要读出来刚才的值,那我们就要先临时保存值到SPSR,CPSR,然后不断切换。再比如,我们要做一个循环,就要用label结合BL不断进行,但如果我们要循环很多次。我们就定义了一些类似于带参数的宏的操作一样,来定义我们的伪指令,方便我们更好的实现汇编程序逻辑。伪指令只是在汇编器之前作用,汇编以后翻译为标准的汇编令集。

伪指令的类别伪指令可分为ARM汇编伪指令和GNU汇编伪指令。伪指令又类似于学c语言的时候的预处理,在预处理的时候把它定义于一堆的宏转化为真正的c语言的代码。同样,伪指令是在定义好之后的汇编,汇编的时候会把它翻译成标准指令,也许一条简单的伪指令可以翻译成很多条标准的汇编指令集,所以这就是伪指令最重要的作用。

ARM汇编伪指令是ARM公司的,GNU汇编伪指令是GNU平台的。他们有自己的汇编器,不同的汇编器的解释语法可以设成不同。汇编语言分成两块:标准指令集和非标准指令集。伪指令,我们说了,是类似于宏的东西,是为了简化工作的,所以这种非标准指令集在不同的汇编器下,支持的语法是稍微有点差别的。今天讲解ARM汇编伪指令,在工作中也常常会遇到GNU的。其实都大同小异,无非是GNU的喜欢前面加个点来表示伪指令。操作:这些都是标准指令,这个开始标识,这是一块代码区域,这个不是标准指令,只是告诉我们一个含义,这就是伪指令。同样enter也是伪指令,只是为了标识用的,包括macro,还有这些大家以前没怎么看过的都是伪指令。

现在再看一下GNU伪指令:这个是一个裸板程序,这个裸板程序是点灯的,是板子上控制灯的程序,而且是混合编程的,有c语言和汇编的。来看一下:这个地方.globl,

就是一个伪指令,这个得意思其实是跟刚才入口出是蛮像的。.globl是全局访问的区域段。define也是一个伪指令,去定义一些变量。这个loopl跟之前的是一样的,这里是一个伪指令,后面有一个冒号,所以大家只需简单地做一个转换就行了。 这里start的意思就是start为入口函数,相当于代表了enter加start标签。这里globl的含义是export,对外导出。这两种伪指令是有一定的差别的,今天还是学ARM的标准的汇编伪指令,GNU伪指令都是大同小异的。

原文链接:http://www.maiziedu.com/wiki/arm/directive/

相关文章

  • ARM汇编伪指令详解

    我们做一些操作会有一点麻烦,比方进行一个if then的判断操作。比如要比较a>b,则去调用某个函数,这就要先去比...

  • 2018-07-13

    Androguard 安装 使用 ARM汇编 汇编指令 伪指令 伪操作 .arch 框架.fpu 协处理器类型 $...

  • 17 ARM汇编伪指令

    伪指令的意义 伪指令不是指令,伪指令和指令的根本区别是经过编译后不会生成机器码 伪指令的意义在于知道编译过程 伪指...

  • 2018-07-14

    ARM汇编 注记符号 指令助记符 伪指令常量 EQU 相当于 C中的 #Define 变量 这些声明具...

  • 伪指令LDR和ADR的分析

    Q:为什么要进行分析? A:伪指令在arm汇编中占有非常重要的地位,通常可以帮助我们在进行汇编编程的时候简化编程难...

  • ARM64汇编入门 - 汇编基础

    ARM64汇编入门 - 汇编基础ARM64汇编入门 - 汇编基础

  • iOS逆向学习(arm64汇编入门)

    iOS汇编 iOS汇编语音有很多钟。常见的有8086汇编、arm汇编、x86汇编等等。 arm汇编 iOS的架构从...

  • 代码还原的技术 ARM汇编入门教程(一) Hello World

    一、目标 为什么要学ARM汇编? 不为什么。 学了ARM汇编有用吗? 没啥用 学完ARM汇编能找到工作吗? 目前流...

  • ARM学习之常用的伪指令详解

    AREA就是常见的伪指令之一。AREA是声明区域段,数据区,代码区等等。什么是数据段呢?数据段是来定义数据结构体的...

  • 翻译一篇IoT安全的文章

    ARM汇编基础教程(ARM汇编简介) [原文链接] :https://azeria-labs.com/writin...

网友评论

      本文标题:ARM汇编伪指令详解

      本文链接:https://www.haomeiwen.com/subject/pzmfextx.html