6. ARM_ARM指令寻址

概念 

什么是寻址方式:

寻址方式就是CPU去寻找一个操作数的方式。

ARM指令寻址的种类:

ARM指令寻址有立即寻址、寄存器寻址、寄存器移位寻址、寄存器间接寻址、基址加变址寻址、等。

种类 

1、立即寻址

立即寻址就是操作数直接包含在指令中,即:操作数是一个立即数

如:"MOV R1,#1" 在这个指令里的1数值是一个立即数,它包含在32位的ARM指令中。

2、寄存器寻址

寄存器寻址就是操作数是寄存器,即:操作数是R0~R15

如:"MOV R1,R2" 在这个指令里的R2就是寄存器

3、寄存器移位寻址

寄存器移位寻址就是操作数后面有一个移位操作,操作数需要先进行移位再进行赋值

如:"MOV R1,R2,LSL #1"

4、寄存器间接寻址

寄存器间接寻址就是寄存器中存放的值是一个地址,从这个地址去取数值。

如:"STR R1,[R2]" ,在这个指令中R2寄存器中存放的数据代表一个地址,是将R1数据赋值给该地址空间中。

5、基址加变址寻址

5.1 概念

基址加变址寻址就是将寄存器的值改变某个值后,再取值

如:"STR R1,[R2,R3]",在这个指令中R2叫做基址、R3叫做变址,R2+R3之后的数据是最终的地址。最终指令是将R1的数据存放到R2+R3这个地址空间处。

如:"STR R1,[R2,R3,LSL #1]",在这个指令中最终的地址是R2+(R3值<<1),将R1的数据存放到该地址中。

5.2 索引方式

基址加变址寻址的索引方式有前索引和后索引,前索引就是先加值再用地址,后索引就是先用地址再进行加值

如:"STR R1,[R2,#8]",该指令就是前索引,将R1数据存放到R2+8指向的地址中,但是R2中的数据不会进行改变

如:"STR R1,[R2],#8",该指令就是后索引,先将R1数据存放到R2指向的地址中,再将R2存放的地址数据+8,在后索引中,R2的数据发生了改变

5.3 自动索引

自动索引是允许前索引改变地址值。

如:"STR R1,[R2,#8]!",该指令就是前索引的自动索引,将R1数据存放到R2+8指向的地址中,这时R2的值也发生改变,变为R2=R2+8

6、多寄存器内存访问

6.1 自动索引

多寄存器内存访问的自动索引寻址方式,效果是先用再加,读取多少个字节就会偏移多少字节。

如:"STM R11!,[R1~R4]",假设R11存储的值是0x40000020,那么R1存储的就是0x40000020地址的数值,R2存储的是0x40000024地址的值,R3存储的是0x40000028地址的值,R4存储的是0x4000002C地址的值。最终R11偏移四次,值改变成0x40000030。

6.2 STM与LDM寻址模式

STM和LDM寻址模式是根据后缀来区分的,后缀包括IA、IB、DA、DB,其中:I代表increase,是地址向高地址增加的意思;D代表decrease,是地址向低地址减少的意思;A代表after,是先用再偏移,B代表before,是先偏移再用。具体含义如下:

下表中的含义以指令 "STMxx  R11!,[R1~R4]" 假设R11存储的值是0x40000020为例进行说明。

指令含义
STMIA

与STM作用一致,先用R11的值,再进行R11向高地址偏移

即:R1存储的就是0x40000020地址的数值,R4存储的就是0x4000002C地址的数值

R11最终结果为0x40000030,在原基础上偏移4字节

STMIB

先进行R11向高地址偏移,再用R11的值

即:R1存储的就是0x40000024地址的数值,R4存储的就是0x40000030地址的数值

R11最终结果为0x40000030,在原基础上偏移4字节

STMDA

先用R11的值,再进行R11向低地址偏移

即:R4存储的就是0x40000020地址的数值,R1存储的就是0x40000014地址的数值

R11最终结果为0x40000010,在原基础上偏移4字节

STMDB

先进行R11向低地址偏移,再用R11的值

即:R4存储的就是0x4000001C地址的数值,R1存储的就是0x40000010地址的数值

R11最终结果为0x40000010,在原基础上偏移4字节

 

### 回答1: com.xunlei.download_1.0.0.1_arm64.deb是一款用于安装迅雷下载软件的安装包。它适用于使用64位处理器的设备,如64位的手机或平板电脑。迅雷下载软件是一款能够快速下载各种类型文件的工具,具备高速下载、多线程下载、断点续传、FTP下载、BT下载等众多功能,能够满足用户对于下载速度和稳定性的需求。通过安装com.xunlei.download_1.0.0.1_arm64.deb,用户可以轻松获得迅雷下载软件,并享受它带来的优质下载服务。同时,用户也需要确认下载安装包的来源是否可靠,避免下载安装带有病毒或恶意软件的安装包,给设备带来安全隐患。 ### 回答2: com.xunlei.download_1.0.0.1_arm64.deb 是一个安卓应用的安装包,它遵循了Linux标准,适用于Aarch64架构的设备。Aarch64是64位存储器寻址架构,物理寻址空间更大,内存访问更快,性能更高,支持更多的CPU寄存器,并且可以处理更长的指令。 这个应用程序是迅雷下载工具,它可以用来下载电影、音乐、软件等各种文件。这个版本为1.0.0.1,可能是对之前版本的更新或修复,因为在软件开发过程中不断修复与完善应用程序是非常常见的。在下载和安装这个deb文件之前,我们应该查看它的来源和安全性,以确保我们下载的文件是可信的。否则,安装恶意软件可能会带来很多风险和麻烦。 ### 回答3: com.xunlei.download_1.0.0.1_arm64.deb 是一个软件安装包,适用于64位的ARM架构。该软件安装包可能是迅雷下载器的一个版本,它可以在ARM64平台上运行。如果您有一个兼容这种架构的设备(例如某些智能手机),您可以通过安装这个软件包来获得迅雷下载器的功能。为了安装这个软件包,您需要下载这个文件并安装它。在UNIX或Linux操作系统上,您可以使用dpkg命令完成这个进程。如果您使用的是Windows操作系统,则需要查找适合您系统的软件安装助手来安装.deb文件,通常这样的应用程序都和软件商店有关。 然而,需要注意的是,资讯安全是任何时候都需要考虑的因素。在您下载并安装.deb文件之前,请先确保它来自可信的软件源。除此之外,您也可以选择使用杀毒软件对.deb文件进行扫描,以防止潜在的恶意软件。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值