ARM汇编语言指令总结 arm64 汇编指令

ARM汇编语言指令总结

ARM处理器有9种寻址方式:1、寄存器寻址,2、立即寻址,3、寄存器器移位寻址,4、寄存器间接寻址,5、基址寻址,6、多寄存器寻址,7、堆栈寻址,8、块拷贝寻址,9、相对寻址。

ARM指令集:ARM指令基本格式如下:

<OPCODE>{<COND>}{S}<Rd>,<Rn>{,<OPERAND2>}

其中<>的内容是必须的,{}的内容是可选的。OPCODE指令助记符,COND执行条件,S是否影响CPSR中的值,Rd目标寄存器,Rn第一个操作数的寄存器,OPERAND2第二个操作数。灵活的使用第2个操作数“operand2”能够提高代码效率。它有如下的形式:1)#immed_8r——常数表达式;2--)Rm——寄存器方式;3)Rm,shift——寄存器移位方式(ASR算术右移,LSL逻辑左移,LSR逻辑右移,ROR循环右移,RRX带扩展的右移1位)。COND执行条件:

下面介绍ARM指令:

1、存储器访问指令。存储器访问指令分为单寄存器操作指令多寄存器操作指令。单寄存器操作指令LDR/STR指令用于对内存变量的访问、内存缓冲区数据的访问、查表、外围部件的控制操作等。LDR:从内存到寄存器,加载数据。STR:将寄存器的数据存储到内存。LDRB操作字节,LDRH操作半字,LDRSH操作有符号半字。多寄存器操作指令LDM为加载多个寄存器;STM为存储多个寄存器。允许一条指令传送16个寄存器的任何子集或所有寄存器。它们主要用于现场保护、数据复制、常数传递等。进行数据复制时,先设置好源数据指针和目标指针,然后使用块拷贝寻址指令LDMIA/STMIA(传送后地址加4

)、LDMIB/STMIB(传送前地址加4)、LDMDA/STMDA(传送后地址减4)、LDMDB/STMDB(传送前地址减4)进行读取和存储 。进行堆栈操作操作时,要先设置堆栈指针(SP),然后使用堆栈寻址指令STMFD/LDMFD(满递减堆栈) 、STMED/LDMED(空递减堆栈)、STMFA/LDMFA(满递增堆栈)和STMEA/LDMEA(空递增堆栈)实现堆栈操作。

2、寄存器和存储器交换指令。SWP指令用于将一个内存单元(该单元地址放在寄存器Rn中)的内容读取到一个寄存器Rd中,同时将另一个寄存器Rm的内容写入到该内存单元中。

SWP{cond}{B}Rd,Rm,[Rn]

3、ARM数据处理指令。分三类数据传送指令;算术逻辑运算指令;比较指令。数据处理指令只能对寄存器的内容进行操作,而不能对内存中的数据进行操作。所有ARM数据处理指令均可选择使用S后缀,并影响状态标志。数据传送指令:MOV,MVN(数据取反传送指令);算术运算:ADD,SUB,RSB(逆向减法指令),ADC,SBC,RSC(带进位逆向减法指令);逻辑运算指令:ADD,ORR,EOR,BIC(位清除指令);比较指令:CMP,CMN(负数比较指令),TST(位测试指令),TEQ(相等测试指令)。

4、乘法指令。MUL(32乘法指令),MLA(32乘加指令),UMULL(64无符号乘法指令),UMLAL(64无符号乘加指令),SMULL(64有符号乘法指令),SMLAL(64有符号乘加指令)。

5、分支指令。B(分支指令),BL(带连接的分支指令),BX(带状态切换的分支指令)。

6、协处理器指令。CDP(协处理器数据操作指令),LDC(协处理器数据读取指令),STC(协处理器数据写入指令),MCR(ARM寄存器到协处理器寄存器的数据传送指令),MRC(协处理器寄存器到ARM寄存器到的数据传送指令)。

ARM汇编语言指令总结 arm64 汇编指令

7、杂项。SWI(软件中断指令),MRS(读状态寄存器指令),MSR(写状态寄存器指令)。

8、伪指令。ADR伪指令将基于PC相对偏移的地址值或基于寄存器相对偏移的地址值读取到寄存器中。ADRL伪指令将基于PC相对偏移的地址值或基于寄存器相对偏移的地址值读取到寄存器中,比ADR伪指令可以读取更大范围的地址。LDR伪指令用于加载32位的立即数或一个地址值到指定寄存器。NOP伪指令在汇编时将会被代替成ARM中的空操作,比如可能是“MOVR0,R0”指令等。NOP可用于延时操作。

各个指令的具体作用,使用方式需查看更详细的说明。

  

爱华网本文地址 » http://www.aihuau.com/a/25101015/258605.html

更多阅读

诺基亚手机解锁密码指令大全 诺基亚手机怎么解锁

诺基亚手机解锁密码指令大全初始保密码:12345?5110锁码机解码:在保密码锁死,输入正确保密码无效的情况下,可1、按C键不放,2、按*键不放,3、按*键不放,4、输入04*PIN*PIN*PIN# 解除锁码。?3210解 SP 锁: 1、按C键 2、按向下键 3、按C键直到

汇编指令全集ZZ 汇编指令查询器

学习汇编语言,最关键的就在于汇编指令集的掌握以及计算机工作方式的理解,以下是80X86汇编过程中经常用到的一些汇编指令。从功能分类上来说,一共可分为一、数据传送指令:MOV、XCHG、LEA、LDS、LES、PUSH、POP、PUSHF、POPF、CBW、CWD

51汇编语言指令集 汇编语言 ld

符号定义表符号 含义Rn R0~R7寄存器n=0~7Direct 直接地址,内部数据区的地址RAM(00H~7FH)SFR(80H~FFH) B,ACC,PSW,IP,P3,IE,P2,SCON,P1,TCON,P0@Ri 间接地址Ri=R0或R1 8051/31RAM地址(00H~7FH) 8052/32RAM地址(00H~FFH)#data 8位常数

51单片机指令集_elec 51汇编指令集

当你编写完一个程序后,通过软件调试,你可以看到程序的指令集,从指令集你就能知道单片机内部是如何工作的,比如数据存取的寄存器与地址,下面是网上找的一篇指令集,讲的蛮好的。一、数据传送类指令(7种助记符)MOV(英文为Move):对内部数据寄存器R

声明:《ARM汇编语言指令总结 arm64 汇编指令》为网友潹銥膂亽分享!如侵犯到您的合法权益请联系我们删除