arm汇编中的加载指令

简介: arm加载指令解析

分类

1加载指令有四个:LDR、LDRB、LDRH、LDM
2存储指令有四个:STR、STRB、STRH、STM
image.png

理论基础
LDR指令用于从存储器中将一个32位的字数据传送到目的寄存器中。

   LDR  R0,[R1]             ;将存储器地址为R1的字数据读入寄存器R0LDR  R0,[R1R2]  ;将存储器地址为R1+R2的字数据读入寄存器R0LDR  R0,[R1,#8] ;将存储器地址为R1+8的字数据读入寄存器R0LDR  R0,[R1R2] !     ;将存储器地址为R1+R2的字数据读入寄存器R0,并将新地址R1R2写入R1LDR  R0,[R1,#8] !       ;将存储器地址为R1+8的字数据读入寄存器R0,并将新地址R18写入R1LDR  R0,[R1],R2        ;将存储器地址为R1的字数据读入寄存器R0,并将新地址R1R2写入R1LDR  R0,[R1R2,LSL#2]!;将存储器地址为R1R2×4的字数据读入寄存器R0,并将新地址R1R2×4写入R1LDR  R0,[R1],R2,LSL#2  ;将存储器地址为R1的字数据读入寄存器 R0,并将新地址R1R2×4写入R1

 LDRB指令用于从存储器中将一个8位的字节数据传送到目的寄存器中,同时将寄存器的高24位清零。
   LDRB  R0,[R1]      ;将存储器地址为R1的字节数据读入寄存器R0,并将R0的高24位清零。
   LDRB  R0,[R1,#8]     ;将存储器地址为R18的字节数据读入寄存器R0,并将R0的高24位清零。

   LDRH指令用于从存储器中将一个16位的半字数据传送到目的寄存器中,同时将寄存器的高16位清零。
  LDRH  R0,[R1]      ;将存储器地址为R1的半字数据读入寄存器R0,并将R0的高16位清零。
  LDRH  R0,[R1,#8]     ;将存储器地址为R18的半字数据读入寄存器 R0,并将R0的高16位清零。
  LDRH  R0,[R1R2]     ;将存储器地址为R1R2的半字数据读入寄存器R0,并将R0的高16位清零。

 STR指令用于从源寄存器中将一个32位的字数据传送到存储器中。
     STR R0,[R1],#8 ;将R0中的字数据写入以R1为地址的存储器中,并将新地址R18写入R1STR R0,[R1,#8] ;将R0中的字数据写入以R18为地址的存储器中。

STRB指令用于从源寄存器中将一个8位的字节数据传送到存储器中。
STRB  R0,[R1];将寄存器R0中的字节数据写入以R1为地址的存储器中。
STRB  R0,[R1,#8]     ;将寄存器R0中的字节数据写入以R18为地址的存储器中。

 STRH指令用于从源寄存器中将一个16位的半字数据传送到存储器中。
        STRH  R0,[R1]      ;将寄存器R0中的半字数据写入以R1为地址的存储器中。
  STRH  R0,[R1,#8]     ;将寄存器R0中的半字数据写入以R18为地址的存储器中。
AI 代码解读

后缀解析
LDM 批量数据加载指令
STM 批量数据存储指令

    常见后缀
    IA 每次传送后地址加1;
    IB 每次传送前地址加1;
    DA 每次传送后地址减1;
    DB 每次传送前地址减1;
    FD 满递减堆栈;
    ED 空递减堆栈;
    FA 满递增堆栈;
    EA 空递增堆栈;

STMFD  R13!,{R0R4-R12LR}  ;将寄存器列表中的寄存器(R0R4R12LR)存入堆栈。
LDMFD  R13!,{R0R4-R12PC}  ;将堆栈内容恢复到寄存器(R0R4R12LR)。
AI 代码解读
目录
打赏
0
0
0
0
10
分享
相关文章
【ARM汇编速成】零基础入门汇编语言之基本认识(一)
【ARM汇编速成】零基础入门汇编语言之基本认识(一)
139 0
【ARM汇编速成】零基础入门汇编语言之C与汇编混合编程(四)
【ARM汇编速成】零基础入门汇编语言之C与汇编混合编程(四)
【ARM汇编速成】零基础入门汇编语言之C与汇编混合编程(四)
【ARM汇编速成】零基础入门汇编语言之指令集(三)
【ARM汇编速成】零基础入门汇编语言之指令集(三)
117 0
【ARM汇编速成】零基础入门汇编语言之指令集(二)
【ARM汇编速成】零基础入门汇编语言之指令集(二)
477 0
|
6月前
ARM64技术 —— 系统调用指令SVC、HVC和SMC的使用规则
ARM64技术 —— 系统调用指令SVC、HVC和SMC的使用规则
几组汇编指令的比较
几组汇编指令的比较
云上应用管理问题之Arm指令集和Arm公司的特点是什么
云上应用管理问题之Arm指令集和Arm公司的特点是什么
深入理解汇编语言:基础语法和常用指令介绍
深入理解汇编语言:基础语法和常用指令介绍
8086 汇编笔记(九):call 指令 和 ret 指令
8086 汇编笔记(九):call 指令 和 ret 指令

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等