ARM汇编 您所在的位置:网站首页 如何练腹肌小孩 ARM汇编

ARM汇编

2024-06-18 19:47| 来源: 网络整理| 查看: 265

指令介绍

【LDR】:从存储器中将一个32位的字数据传送到目的寄存器中。该指令通常用于从存储器中读取32位的字数据到通用寄存器,然后对数据进行处理。

当程序计数器PC作为目的寄存器时,指令从存储器中读取的字数据被当作目的地址,从而可以实现程序流程的跳转

// 格式:LDR{条件} 目的寄存器, LDR R0,[R1] // 将存储器地址为R1的字数据读入寄存器R0 LDR R0,[R1,R2] // 将存储器地址为R1+R2的字数据读入寄存器R0 LDR R0,[R1,#8] // 将存储器地址为R1+8的字数据读入寄存器R0 LDR R0,[R1,R2]! // 将存储器地址为R1+R2的字数据读入寄存器R0,并将新地址R1+R2写入R1 LDR R0,[R1,#8]! // 将存储器地址为R1+8的字数据读入寄存器R0,并将新地址R1+8写入R1 LDR R0,[R1],R2 // 将存储器地址为R1的字数据读入寄存器R0,并将新地址R1+R2写入R1 LDR R0,[R1,R2,LSL#2]! // 将存储器地址为R1+R2×4的字数据读入寄存器R0,并将新地址R1+R2×4写入R1 LDR R0,[R1],R2,LSL#2 // 将存储器地址为R1的字数据读入寄存器R0,并将新地址R1+R2×4写入R1

【STR】:从源寄存器中将一个32位的字数据传送到存储器中,使用方式可参考指令LDR

// 格式:STR{条件} 源寄存器, STR R0,[R1],#8 // 将R0中的字数据写入以R1为地址的存储器中,并将新地址R1+8写入R1 STR R0,[R1,#8] // 将R0中的字数据写入以R1+8为地址的存储器中 案例介绍 STR指令

在这里插入图片描述

图 1

如下即是图1红色箭头所标识的指令

STR R0, [SP,#0x10+var_4]

简单解析一下这条指令:将R0寄存器中的值,存贮到地址为[SP,#0x10+var_4]的存储器中,这个地址是多少呢?我们计算一下

SP寄存器的地址为0xFFBEF930,图1右边中间的红色框有标注,#0x10为立即数,var_4的值图1左上角有标注,为-4,计算的结果如图2所示FFBEF93C

在这里插入图片描述

图 2

简言之,执行完这条指令之后,地址为FFBEF93C的存储器中存储的值为R0寄存器中的值,即图1右上角红框标识处的值F51D6BA0

F8执行,结果如下: 在这里插入图片描述

图 3 LDR指令 LDR R0, [SP,#0x10+var_C]

在这里插入图片描述

图 4

LDR指令案例大家可以自行计算一下,结果如下图所示

在这里插入图片描述

图 5


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有