寄存器内存读写指令(一) —— 单寄存器读写 LDR / STR

本文详细讲解了CPU如何处理C语言的a++操作,涉及STR和LDR指令的基本用法,以及针对不同数据类型的1字节和2字节读写。还介绍了内存地址的基址加变址寻址技巧,以及STRB和STRH这类针对小数据类型的扩展指令。

CPU在处理C语言的 a++ 操作时,变量a因为是放在在内存里的,需要先把a从内存中读取到寄存器中,运算完毕后再保存到内存中。

因此,下面要介绍的是单个寄存器的读写

  • 一个寄存器的数据写入到内存              —— STR指令
  • 从内存中读取数据保存到一个寄存器       —— LDR指令

         目录

1、基本内存读写指令(4个字节读写)

(1) 写内存 STR

(2) 读内存 LDR

2、内存的其他读写方式(1个字节读写、2个字节读写)

(1) 加后缀 B(1个字节的读写)

(2) 加后缀 H(2个字节的读写)


1、基本内存读写指令(4个字节读写)

(1) 写内存 STR

STR 的作用是将数据保存到内存中,默认情况下,一次会向内存中写入4个字节

指令格式:STR  第一操作寄存器,  [ 第二个操作寄存器]

  • 第一操作寄存器:保存数据的寄存器
  • 第二个操作寄存器:保存内存地址的寄存器(即要写入到内存中的哪个地址)
MOV R1, #0x000000FF    
MOV R2, #0x40000000
MOV R3, #4

@ 基本使用方式
STR R1, [R2]            @ 将R1寄存器中的数据保存到 R2 的地址
                        @ 也就是 将0x000000FF保存到内存中的 0
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值