CPU在处理C语言的 a++ 操作时,变量a因为是放在在内存里的,需要先把a从内存中读取到寄存器中,运算完毕后再保存到内存中。
因此,下面要介绍的是单个寄存器的读写
- 将一个寄存器的数据写入到内存 —— STR指令
- 从内存中读取数据保存到一个寄存器 —— LDR指令
目录
1、基本内存读写指令(4个字节读写)
(1) 写内存 STR
STR 的作用是将数据保存到内存中,默认情况下,一次会向内存中写入4个字节。
指令格式:STR 第一操作寄存器, [ 第二个操作寄存器]
- 第一操作寄存器:保存数据的寄存器
- 第二个操作寄存器:保存内存地址的寄存器(即要写入到内存中的哪个地址)
MOV R1, #0x000000FF
MOV R2, #0x40000000
MOV R3, #4
@ 基本使用方式
STR R1, [R2] @ 将R1寄存器中的数据保存到 R2 的地址
@ 也就是 将0x000000FF保存到内存中的 0

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

被折叠的 条评论
为什么被折叠?



