LDL LDR SDR SDL

本文介绍RISC指令集中的LDL、LDR、SDL和SDR指令,这些指令用于处理数据地址不对齐的情况。文章详细解释了这些指令如何在big-endian系统中工作,并指出在little-endian系统中的应用差异。
部署运行你感兴趣的模型镜像
 

这四条指令都是RISC指令load和store的扩展,主要用于数据地址不对齐(字对齐或者双字对齐)的情况下传送数据时所用。 LDL和LDR:'LD':load,L(R):寄存器的left(right),即从寄存器的左边(寄存器的高字节端)还是右边(寄存器的低字节端)开始操作。其中有这样的对应关系:LDL对应的内存操作字节的顺序是high-order(升序,从低地址字节到高地址字节)。LDR对应的内存操作字节顺序为low-order(降序,从高地址字节到底地址字节)。这种拷贝字节的操作直到一个双字(LWL或LWR是字)对齐的地址结束。

SDR和SDL:和LDR和LDL一样,只不过是存储的操作。其中解释同LDL和LDR。

以上情况是用于big endian系统,如果是little endian系统,则将原来的high-order变成low-order,原来的low-order变成high-order即可

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

### 1. `ldr` 指令 `ldr`(Load Register)是 ARM 汇编中用于从内存加载数据到寄存器的指令。它有多种形式,常见的用途是将内存中的数据加载到通用寄存器中。 #### 语法 ```plaintext ldr <Rt>, [<Rn> {, <offset>}] ``` - `<Rt>`:目标寄存器,用于存储从内存加载的数据。 - `<Rn>`:基址寄存器,指定内存地址的基地址。 - `<offset>`:可选的偏移量,用于计算最终的内存地址。 #### 功能 从由基址寄存器 `<Rn>` 和可选偏移量 `<offset>` 计算得到的内存地址处加载一个 32 位(在 32 位系统中)或 64 位(在 64 位系统中)的数据到目标寄存器 `<Rt>` 中。 #### 示例 在引用中 `10: f9400273 ldr x19, [x19]` 这行代码,就是将 `x19` 寄存器所指向的内存地址处的数据加载到 `x19` 寄存器中。这里的 `x19` 既是基址寄存器,也是目标寄存器,是将 `x19` 指向的内存数据覆盖到 `x19` 寄存器里 [^1]。 ### 2. `ldp` 指令 `ldp`(Load Pair)指令用于从内存中加载一对寄存器的数据。它可以一次加载两个寄存器的数据,提高了数据加载的效率。 #### 语法 ```plaintext ldp <Rt1>, <Rt2>, [<Rn> {, <offset>}] ``` - `<Rt1>` 和 `<Rt2>`:目标寄存器对,用于存储从内存加载的数据。 - `<Rn>`:基址寄存器,指定内存地址的基地址。 - `<offset>`:可选的偏移量,用于计算最终的内存地址。 #### 功能 从由基址寄存器 `<Rn>` 和可选偏移量 `<offset>` 计算得到的内存地址开始,依次加载两个连续的寄存器大小的数据到 `<Rt1>` 和 `<Rt2>` 中。在 64 位系统中,通常是两个 64 位的数据。 #### 示例 在引用中有 `0: a9be4ff4 stp x20, x19, [sp,#-32]!` 和 `44: a8c24ff4 ldp x20, x19, [sp],#32`,其中 `ldp` 指令将 `sp` 寄存器指向的内存地址处开始的两个连续 64 位数据分别加载到 `x20` 和 `x19` 寄存器中,并且加载完成后 `sp` 寄存器的值加上 32 [^1]。 ### 3. `ldl` 指令 需要说明的是,在标准的 ARM 汇编指令集中并没有 `ldl` 指令。可能是特定环境、自定义或者笔误。在 ARM 汇编里与之可能混淆的有 `ldrb`(Load Register Byte,加载一个字节的数据)、`ldrh`(Load Register Halfword,加载一个半字,即 16 位的数据)等。如果是某个特定平台或编译器自定义的 `ldl` 指令,其功能需要参考相应平台的文档来确定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值