> 首页 > 生活 > 百科 > 什么是ARM汇编

什么是ARM汇编

来源:网络 作者:佚名 时间:04-06 手机版

ARM汇编是指计算机ARM操作指令系统。在ARM中有两种方式可以实现程序的跳转:一种是跳转指令;另一种是直接向PC寄存器中写入目标地址值。

ARM汇编可以分为数据处理指令,数据加载指令和存储指令,分支指令,程序状态寄存器处理指令,协处理器指令和异常产生指令六大类。

arm汇编跟汇编、C语言的区别

不一样,汇编主要是要了解CPU指令及用法。

我们常说的是PC机的x86汇编,指令是x86的复杂指令集。

arm汇编是arm的精简指令集,比x86容易学,程序格式倒是和x86汇编差不多。你下载一份arm的手册就可以了解了。

C语言ARM的和x86的差不多,除了对硬件寄存器操作不同,其它语法和流程都一样。

回答补充:

arm汇编程序每一行是指定arm core执行一条指令,每条指令都是硬件相关。

LDR R3, #1 用LDR指令将数值1放入R3寄存器准备参与运算

C语言与arm指令无关,只与逻辑运算有关,指定硬件地址的操作才与硬件相关;如果用arm编译器来编译,每行可能编译出1到多条arm指令。

i++ //变量 i 递增1

等效于

LDR R3,#1 用LDR指令将数值1放入R3寄存器准备参与运算

ADD R2, R2, R3 用ADD指令将R2、R3寄存器里的数值相加后放回R2寄存器

以上等效汇编的R2、R3寄存器只是为了举例,C语言不像汇编,不需要由程序员指定用哪个寄存器参与运算,编译器编译时会根据程序结构自动判断选择。

强调mcuos有错,“c语言被编译器编译的时候会最终解释为汇编语言的”,无论是c语言还是汇编语言,编译器编译后的结果是机器执行码,很多人因为汇编语言比较难懂及指令相关,所以以为它就是机器语言,其实它仍是人类设计的编写程序的语言,仍需要编译器编译成机器码才能执行,它只是比C语言更接近硬件而已。

经常听说AT&T汇编、Intel汇编,还能听到ARM汇编,这个ARM汇编与前两个有什么关联?

AT&T汇编和Intel汇编,是两种不同汇编语言格式,与具体CPU关系不大,只是Intel汇编格式基本只用在自家的x86系列CPU上,而AT&T汇编格式在多种CPU上都可以使用(x86,power,VAX等等)。

两者的区别主要是CPU指令、寄存器、立即数、寻址方式等方面的表示方法不同,如果只习惯一种,那么看另一种那是相当的费劲,经常想错。网上有很多这两种格式的介绍,你搜索一下“ATT Intel 汇编格式”就很清楚了。

ARM汇编只有一种格式,就是ARM公司定义的汇编表示方法,只用在ARM系列CPU上,由于只有一种汇编格式,所以格式问题就是隐含的,一般不用提起,那么普通意义上的“ARM汇编”,就是指ARM的汇编语言了。

ARM汇编:多寄存器指令LOAD/STORE指令(LDM/STM )

LDM/STM分为两组:

看一下助记符的具体含义:

LDM/STM :

M 应该是多(Multi)的意思, LD / ST 分别对应load和store,那么 LDM/STM 应该可以理解为多寄存器的load/store操作指令。

IA 、 IB 、 DA 、 DB 、 FA 、 FD 、 EA 、 ED 的含义可以参考下面的说明:

作用:

将[R4]和[R4+4]分别存入R0和R1寄存器。

A / D 是标识堆栈增长的方向。

A 表示正增长(低地址往高地址增长)。

D 表示负增长(高地址往低地址增长)。

F / E 是标识是指向栈顶还是栈底。

在ARM中, STMFD SP! 就等同于 PUSH , LDMFD SP! 就等同于 POP 。

例如,

作用:

将lr,r3,r2,r1,r0按顺序入栈,SP = SP - 4*5

ARM汇编语言由哪些指令组成?它们之间的区别是什么?

机器指令能被处理器直接执行,而汇编指令、伪指令和宏指令不能。机器指令包括ARM指令集和Thumb指令集 。

伪指令是在源程序汇编期间,由汇编编译器处理。其作用是为汇编程序完成准备工作。

宏指令在程序中用于调用宏,宏是一段独立的程序代码;在程序汇编时,对宏调用进行展开,用宏体代替宏指令。

相关推荐:

什么是ARM汇编

什么是app功能

鲁迅创造故乡的目的是什么

什么是apk软件

鲁迅从日本回国后发生了什么事

为什么两个字的ID越来越多

什么是AOP编程

鲁迅诞辰100周年组成什么成语

标签: [db:标签]

声明:《什么是ARM汇编》一文由排行榜大全(佚名 )网友供稿,版权归原作者本人所有,转载请注明出处。如果您对文章有异议,可在反馈入口提交处理!

最近更新

  • 什么是ARM汇编

    ARM汇编是指计算机ARM操作指令系统。在ARM中有两种方式可以实现程序的跳转:一种是跳转指令;另一种是直接向PC寄存器中写入目标地址值。ARM汇编...

    百科 日期:2023-04-06

  • 什么是app功能

    APP就是可以在安装在手机上的软件,APP的功能是根据APP的类型分的,如果是企业型的APP,开发出来的功能都是针对企业办公或是企业介绍的,如果是社交...

    百科 日期:2023-04-06

  • 鲁迅创造故乡的目的是什么

    辛亥革命后,地主阶级的军阀官僚统治中国,帝国主义操纵中国的政治和军事力量,人民过饥寒交迫和毫无政治权利的生活。1919年12月初,鲁迅从北京回故...

    百科 日期:2023-04-06

  • 什么是apk软件

    APK软件是安卓手机常用的APK文件格式的软件。APK即Android application package文件或Android安装包。每个要安装到Android平台的应用都要被...

    百科 日期:2023-04-06

  • 鲁迅从日本回国后发生了什么事

    1909年,鲁迅从日本归国,先后在杭州浙江两级师范学堂和绍兴府中学堂任教员。这是鲁迅思想极其苦闷的时期,靠埋头于研究古碑文打发时间。1911年的...

    百科 日期:2023-04-06

  • 为什么两个字的ID越来越多

    因为ID控。不知道是不是贴吧特有的产物。不怎么关注这块不知道现在的情况。最早以前比较流行单字ID、词组ID、符号ID、甚至还有诗词ID以及人...

    百科 日期:2023-04-06

  • 什么是AOP编程

    AOP编程,又称面向切面编程,是一个比较热门的话题。AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或...

    百科 日期:2023-04-06

  • 鲁迅诞辰100周年组成什么成语

    成语:百年树人。原因:鲁迅 ,原名周树人 。鲁迅诞辰100周年可组成“百年树人”鲁迅。百年树人:比喻培养人才是长期而艰巨的事。出 处:《管子·权修...

    百科 日期:2023-04-06

百科排行榜精选

邮箱不能为空
留下您的宝贵意见