首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ARM拆卸-对"LDR r7,[pc,#0x14]“感到困惑。

ARM拆卸-对"LDR r7,pc,#0x14"感到困惑。

"LDR r7,pc,#0x14"是一条ARM汇编指令,用于将存储在内存地址pc,#0x14处的数据加载到寄存器r7中。

具体解释如下:

  • LDR:是Load Register的缩写,表示将数据加载到寄存器。
  • r7:是ARM架构中的一个寄存器,用于存储数据。
  • pc,#0x14:表示一个内存地址,其中pc是程序计数器寄存器的别名,指向当前指令的地址。#0x14是一个偏移量,表示相对于pc的偏移量,即从当前指令地址向后偏移0x14个字节。

这条指令的作用是将位于pc,#0x14地址处的数据加载到r7寄存器中。由于pc指向当前指令的地址,所以这条指令实际上是将当前指令后面0x14个字节处的数据加载到r7寄存器中。

这种指令通常用于加载常量或者数据表中的值。在ARM汇编中,常量通常存储在代码段中,通过pc寄存器和偏移量来访问。这样可以在不知道具体地址的情况下,通过相对偏移来加载数据。

对于这个指令,腾讯云没有特定的产品或者服务与之直接相关。然而,腾讯云提供了一系列云计算服务,包括云服务器、云数据库、云存储等,可以帮助开发者构建和部署各种应用。如果您对腾讯云的产品感兴趣,可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

uboot的relocation原理详细分析「建议收藏」

ldr r2, [pc, #44] ========> r2 = [pc + 0x2c]=======>r2 = [0x80e9d3e0 + 0x2c]=======>r2 =[0x80e9d40c...] 需要注意,由于ARM的流水线机制,当前PC值为当前地址加8个字节 这样r2获取的是0x80e9d40c地址的值0x80eb75c0,这就是test_val的值嘛 mov r3, #20======>...这3条指令说明,ARM对于变量test_val的寻址如下: (1)将变量test_val的地址存储在函数尾端的Label中(这段内存空间是由编译器自动分配的,而非人为) (2)基于PC相对寻址获取函数尾端...Label上的变量地址 (3)test_val变量地址进行读写操作 再来看其中的几条指令 ldr r3, [pc, #28] =====> r3 = [0x80e9d3fc + 0x1c] =...接下来来看函数的调用,可以看到对于printf以及test_func,使用的是指令bl以及b进行跳转,这2条指令都是相对寻址(pc + offset) 说明ARM调用函数使用的是相对寻址指令bl或b,与函数的绝对地址无关

1.2K10

嵌入式:LoadStore之单寄存器的存取指令

ARM系统中I/O操作是通过存储器映射进行寻址的,I/O设备的操作可以和存储器的操作一样,因此,也是使用Load/Store指令完成。...Load/Store指令分类 ARM指令集中有三种基本的数据存取指令: 单寄存器的存取指令(LDR,STR):提供寄存器和存储器之间最灵活的单数据项传送方式,传送的数据可以是8位字节、16位半字或32位字...相对PC的形式 LDR|STR {} {B} Rd, LABEL 举例: LDR R8,[R10] ;R8←[R10] LDRNE R1,[R5,#960]!...STR R0,[R7],#-8 ;将R0的内容存到R7中地址对应的内存中,R7←R7-8 在编程中,常使用相对PC的形式将R0中的一个字存到外设UART,如: LDR R1,UARTADD...STR R0,[R1] ​ 或者,使用相对PC形式将外设UART数据读到R0 ,如: LDR R1,UARTADD LDR R0,[R1]

48820

arm汇编指令详解带实例_汇编buf指令

操作系统有安全级别要求,多模式为了方便操作系统多种角色安全等级需求 ARM寄存器组织 ARM 处理器有 37 个 32 位长的寄存器。 1 个用作 PC(程序指针)。...(如果需要) 保存返回地址到 LR_(R14) 设置 PC 为相应的异常向量 从异常返回时 从 SPSR_恢复CPSR 从LR_恢复PC 注意:这些操作只能在 ARM 态执行。...后缀不能用于R15(PC)的后面 当用于单个寄存器后面时,必须确性这个寄存器有隐性的偏移量,eg:“STMDB SP!,{R3,R5,R7}”此时地址基址寄存器SP的隐性偏移量是4。...此标志经常用于条件进行测试,例如:是否溢出,是否进位等;根据这些变化,就可以进行一些判断,是否大于,是否相等,从而可能影响指令执行顺序。...ARM中有一个ldr指令,还有一个ldr伪指令 一般都使用ldr伪指令而不用ldr指令 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

1.3K10

嵌入式ARM设计编程(二) 字符串拷贝

一、实验目的 通过实验掌握使用 LDB/STB,b等指令完成较为复杂的存储区访问和程序分支,学习使用条件码 二、实验环境 硬件:PC机 软件:ADS1.2 集成开发环境 三、实验内容 熟悉开发环境的使用并完成一块存储区的拷贝...: AREA Init,CODE,READONLY ;定义CODE片段Init 只读 ENTRY ;进入程序 CODE32 ;以下为32位的ARM...程序 start MOV SP, #0x400 ; 设置堆栈地址为0x400 LDR R0, =Src ; 先将原字符串地址加载到R0 LDR R1, =Dst...过程如下: 直到拷贝过程结束,实验结束后存储单元中的内容如下: 相关寄存器中的具体内容如下所示: 练习题: 编写程序循环R4~R11 进行累加8 次赋值,R4~R11 起始值为1~8,每次加操作后把..., {R4-R11} 编写实验代码如下: AREA Init,CODE,READONLY ;定义CODE片段Init 只读 ENTRY ;进入程序 CODE32 ;以下为32位的ARM

38610
领券