ARM 汇编指令:(二) LDR与STR 单内存访问指令

这篇具有很好参考价值的文章主要介绍了ARM 汇编指令:(二) LDR与STR 单内存访问指令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一:LDR指令格式LDR指令用于从内存中加载数据到寄存器。它的基本语法为:

二:STR指令格式STR指令用于将数据从寄存器存储到内存。它的基本语法为:

三:LDR与STR 使用示例:

1.LDR   加载立即数或者地址值

2.LDR   将寄存器里的地址指向的内容(*p 这与C语言这条语句等价)加载到目标寄存器

3.STR 将寄存器里的值,保存到寄存器里保存地址所指向的内存空间里。


一:LDR指令格式LDR指令用于从内存中加载数据到寄存器。它的基本语法为:

LDR{cond}{B}{T} Rd, [Rn{, #offset}]

其中:

{cond}是条件码,可选项。用于指定条件执行LDR指令的条件。

{B}是字节访问标志,可选项。用于指定是否进行字节级别的加载。

{T}是类型标志,可选项。用于指定加载的数据类型,例如字、半字或字节。

Rd是目标寄存器,用于存储从内存中加载的数据。

Rn是基地址寄存器,其中存储了要加载数据的内存地址。

#offset是可选的偏移量,用于指定基地址寄存器Rn与实际数据的偏移量。

LDR指令可以加载整数、浮点数、字符等类型的数据。

二:STR指令格式STR指令用于将数据从寄存器存储到内存。它的基本语法为:

STR{cond}{B}{T} Rd, [Rn{, #offset}]

其中:

{cond}是条件码,可选项。用于指定条件执行STR指令的条件。

{B}是字节访问标志,可选项。用于指定是否进行字节级别的存储。

{T}是类型标志,可选项。用于指定存储的数据类型。

Rd是源寄存器,其中存储了要存储到内存的数据。

Rn是基地址寄存器,其中存储了要存储数据的内存地址。

#offset是可选的偏移量,用于指定基地址寄存器Rn与实际数据的偏移量。

STR指令将寄存器中的数据存储到内存中的指定位置。

三:LDR与STR 使用示例:

ldr:将内存中的值加载到寄存器(读内存,写寄存器)  ldr r0,[r1]

str:将寄存器的内容写入内存(写内存,读寄存器) str r0,[r1]

1.LDR   加载立即数或者地址值

     用于加载立即数或一个地址值到指定寄存器中,这种场景 ldr被视为一种伪指令,其作用同mov差不多,但是没有立即数的长度为8位的限制如果使用ldr伪指令时,后面跟的立即数没有超过8位,那么在实际汇编的时候该ldr伪指令是被转换为mov指令的。

ldr r0, =0x3ff; #与mov r0, #0x3ff等价
char tabal[10];

ldr r0, =tabal; #将数组的首地址加载到r0上

2.LDR   将寄存器里的地址指向的内容(*p 这与C语言这条语句等价)加载到目标寄存器

ldr r0, [r1]; #将r1里存的地址指向的内容,写入寄存器r0
ldr r0, [r1, #32] #将r1里存的地址+32字节所指向的内容,写入寄存器r0
ldr r0, [r1], #32 #将r1里存的地址指向的内容+32,将结果写入寄存器r0

3.STR 将寄存器里的值,保存到寄存器里保存地址所指向的内存空间里。

str r1 [r0]; #将寄存器r1保存的值写入 r0保存的内存地址空间
str r1, [r0, #16] #将寄存器r1保存的值写入 r0保存的内存地址 + 16所指向的空间
str r1, [r0], #32  //#将寄存器r1保存的值写入 r0保存的内存地址空间,并且 r0=r0+32

下一页:ARM 汇编指令:(三)运算处理指令文章来源地址https://www.toymoban.com/news/detail-853020.html

到了这里,关于ARM 汇编指令:(二) LDR与STR 单内存访问指令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [ARM 汇编]进阶篇—存储访问指令—2.3.2 多数据传输指令

    在 ARM 汇编中,多数据传输指令用于一次性从存储器中加载多个数据到寄存器组,或将寄存器组中的多个数据存储到存储器。这些指令通常用于高效地处理数组、结构体等数据结构。在本节中,我们将详细介绍 ARM 汇编中的多数据传输指令,并通过实例帮助你更好地理解和掌握

    2024年02月09日
    浏览(27)
  • LDR指令解析

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 目录 文章目录 前言 一、LDR指令是什么 二、代码分析 1.示例代码 总结 ARM中LDR使用频繁,初上手会有些理解困难的地方,本文章结合一段小代码解析LDR指令的使用。 提示:以下是本篇文章正文

    2024年02月13日
    浏览(20)
  • 【ARM64 常见汇编指令学习 13 -- ARM 汇编 ORG 伪指令学习】

    上篇文章:ARM64 常见汇编指令学习 12 – ARM 汇编函数 的学习 下篇文章:ARM64 常见汇编指令学习 14 – ARM 汇编 .balign,.balignw,.balign 伪指令学习 在ARM汇编中,\\\" org \\\"是一个汇编器伪指令,用于设置下一条指令的装入地址。\\\" org \\\"后面跟着的是一个表达式,这个表达式的值就是下一条

    2024年02月14日
    浏览(34)
  • 【ARM 常见汇编指令学习 5 -- arm64汇编指令 wzr 和 xzr】

    上篇文章:ARM 常见汇编指令学习 4 – ARM64 比较指令 cbnz 与 b.ne 区别 下篇文章:ARM 常见汇编指令学习 6 - bic(位清除), orr(位或), eor(异或) ARMv8 在硬件层名引入了一个新的 zero 寄存器 : XZR (64-bits), WZR (32-bits)。比如要将某一变量赋值为0x0, 由于ARM不允许直接操作内存单元上的数据

    2024年02月15日
    浏览(41)
  • 【ARM系列】ARM常用汇编指令

    在调试芯片启动代码或者分析ARM core运行流程的过程中,尝尝需要对照软件代码的反汇编文件进行分析,因此有必要掌握一些常用的arm汇编指令。 指令格式:MOV{条件}{S} 目的寄存器,源操作数 指令含义:将源操作数赋值给目的寄存器。源操作数可以是寄存器,立即数或带移位

    2024年02月04日
    浏览(26)
  • ARM汇编 : 汇编指令,伪指令,汇编程序格式

    计算机的指令集一般可分为4种: 复杂指令集(CISC) 精简指令集(RISC) 显式并行指令集(EPIC) 超长指令字指令集(VLIW) ARM指令集属于RISC,RISC相对于CISC指令集,主要有以下特点: ●Load/Store架构,CPU不能直接处理内存中的数据,要先将内存中的数据Load(加载)到寄存器中

    2024年02月12日
    浏览(23)
  • 【ARM64 常见汇编指令学习 12 -- ARM 汇编函数 的学习】

    上篇文章:ARM64 常见汇编指令学习 11 – ARM 汇编宏 .macro 的学习 下篇文章:ARM64 常见汇编指令学习 13 – ARM 汇编 ORG 伪指令学习 ARM汇编中的函数定义并不像高级语言那样有特定的语法,但通常可以通过 标签(label) 和 子程序调用指令 (如BL,BLX) 来实现类似于函数的功能。 例如

    2024年02月14日
    浏览(34)
  • 【ARM64 常见汇编指令学习 14 -- ARM 汇编 .balign,.balignw,.balign 伪指令学习】

    上篇文章:ARM64 常见汇编指令学习 13 – ARM 汇编 ORG 伪指令学习 下篇文章:ARM64 常见汇编指令学习 15 – ARM 标志位的学习 .balignl 是一个伪操作符,伪操作符的意思就是机器码里,并没有一个汇编指令与其对应,是编译器来实现其功能的。. balignl 是 .balign 的变体。 .balignl 完整

    2024年02月14日
    浏览(31)
  • 【ARM64 常见汇编指令学习 16 -- ARM64 SMC 指令】

    上篇文章:ARM64 常见汇编指令学习 15 – ARM64 标志位的学习 下篇文章:ARM64 常见汇编指令学习 17 – ARM64 BFI 指令 在ARMv8架构中,同步异常主要包括以下几种: Undefined Instruction :未定义指令异常,当处理器尝试执行一条未定义的指令时会触发。 Supervisor Call (SVC) :这是一种特殊

    2024年02月13日
    浏览(32)
  • ARM64 常见汇编指令学习 11 -- ARM 汇编宏 .macro 的学习

    下篇文章:ARM64 常见汇编指令学习 12 – ARM 汇编函数 的学习 上篇文章:ARM64 常见汇编指令学习 10 – 无符号位域提取指令 BFXIL 在 ARM 汇编中,“ .macro ” 是用来定义一个宏的指令。宏可以看作是一个可以在汇编程序中重用的代码段。当调用宏时,汇编器会将宏的内容插入到调

    2024年02月14日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包