美文网首页
ARM汇编的内存操作详解

ARM汇编的内存操作详解

作者: 随波逐流007 | 来源:发表于2017-09-21 16:15 被阅读101次

内存操作-读取内存:

跟内存相关的指令无非是把内存中读取到计算机里面或者把计算机的内容读取到内存里面。存储器和计算机之间的一个互换。这些指令也可以在我们之前的相关文档里去查询。ARM汇编去官网下载相关的文档就行。

内存操作指令分为:单寄存器读写指令、多寄存器内存访问指令(连续的进行操作一段时间内存,把它读到计算机里面)和数据交换指令

内存操作结构:

LDR:把我们内存中的数据读取到计算器里面。内存是分块的,内存最小的单位是字节(byte),到为了便于管理,所以存储器会分页,分页的时候它会用到另一个单位:word字长。一个word就是4个字节,以32位为一个单位。所以默认单位是字长来进行一个读取。同理,STR就是按字长把计算器里面的值放到内存里面。现在详细地讲一下:LDR后面跟上Rn Add

例:我们打开这样一个项目,在这里我们开始做一下我们今天这一块。我先把我们的内存里的一个值读到某个计算器里面,我们就用LDR

比如我读到R0吧,我把0x12这个地址给它读进来,这个地方要注意一点,这个地方可不是我们的move,所以这个地方不能直接用立即数。不直接用立即数有两种方法。把R1的值所指向的(这个地方有中括号,中括号表示计算机间接寻址,它的值所指向的内存的地址空间的值读出来复到R0里面。再看下一块,0x12就是找12

2就是对应的FF,但是要读32位,也就是4个字节。现在把值给赋过去

现在读出的地址是0010E7FF,我们找到的这个起始位是FF,然后是E7。FF是起点,却被放在后面,这就是小端模式(低位放低地址,高位放高地址)。为什么会是这样?实际上,是这样读的

它会根据地址先判断哪个是最小的字空间,然后把字空间的内容读出来。同样,如果往后读,会不会挨着往后走呢?我们来验证下:先改一下,不是0012了,改成0014。R1最开始就是0,给它加上立即数。

还可以用微指令。现在值已经赋过来了

E800E800,新的字单元。从第9个开始,10E7FF00,可以看出,内存要分页,最小的也是分了断的。所以内存操作往往是按照字长来的。

原文链接:http://www.maiziedu.com/wiki/arm/memory/

相关文章

  • ARM汇编的内存操作详解

    内存操作-读取内存: 跟内存相关的指令无非是把内存中读取到计算机里面或者把计算机的内容读取到内存里面。存储器和计算...

  • iOS 逆向基础汇编知识

    1 寄存器 内存 栈 在高级语言里面,操作对象是变量,在ARM汇编里面,操作对象是寄存器(register),内...

  • 2018-07-13

    Androguard 安装 使用 ARM汇编 汇编指令 伪指令 伪操作 .arch 框架.fpu 协处理器类型 $...

  • ARM64汇编入门 - 汇编基础

    ARM64汇编入门 - 汇编基础ARM64汇编入门 - 汇编基础

  • iOS逆向学习(arm64汇编入门)

    iOS汇编 iOS汇编语音有很多钟。常见的有8086汇编、arm汇编、x86汇编等等。 arm汇编 iOS的架构从...

  • ARM汇编指令

    关于arm64汇编指令,如下图 汇编指令可以汇总如下:(后续会更新) 关于内存读写指令 注意:读/写 数据是都是往...

  • 代码还原的技术 ARM汇编入门教程(一) Hello World

    一、目标 为什么要学ARM汇编? 不为什么。 学了ARM汇编有用吗? 没啥用 学完ARM汇编能找到工作吗? 目前流...

  • 翻译一篇IoT安全的文章

    ARM汇编基础教程(ARM汇编简介) [原文链接] :https://azeria-labs.com/writin...

  • ARM 汇编指令学习:[1]ARM指令寻址方式

    ARM 汇编指令学习:[1]ARM指令寻址方式 一、数据处理指令的操作数的寻址方式 通常具有下面3种格式: 1、 ...

  • ARM汇编寻址方式详解

    寻址方式在C语言里面也可以称为一个内存操作,说到寻址方式,我们就会想哪里有地址,当然就是存储器,而存储器就包括内存...

网友评论

      本文标题:ARM汇编的内存操作详解

      本文链接:https://www.haomeiwen.com/subject/xnftextx.html