码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ARM编程模型-内存空间和数据


    ARM属于RISC体系,许多指令单周期指令,是32位读取/存储架构,对内存访问是32位,Load and store的架构,只有寄存器对内存,不能内存对内存存储,CPU通过寄存器对内存进行读写操作。
    ARM的寻址空间是线性地址空间,典型的32位地址下,空间大小为232 = 4G.
    注:X86 寻址是段+偏移量

    1.数据类型

    字节类型(Byte):数据宽度为8bits
    半字节类型(Halfword):数据宽度为16bits,存取时一般要求为2字节对齐。
    字数据类型(Word):数据宽度为32bits,存取时一般要求4字节对齐
    在这里插入图片描述

    2.数据对齐

    在V6架构之前,数据访问都必须针对要访问的大小把访问的地址进行对齐,没有对齐的地址将会导致出现“数据中止”异常(在数据存取或指令预取时都可能出现)。
    在这里插入图片描述
    没有对齐的地址数据可以通过多个对齐地址数据以为/掩码操作来实现。
    ARM V6架构添加了新的硬件来支持未对齐的数据访问。

    3.数据存储的大小端问题

    大小端问题时指数据在计算机内存中的字节顺序问题,它决定了寄存器的内容和内存内容的格式关联。
    ARM寄存器时字宽,就是4字节。而内存寻址是按照字节顺序的。
    采用大端方式符合人类的正常思维,小端方式有利于计算机处理,无优劣之分。
    ARM支持大端(Big-endian)和小端(Little-endian)的内存数据方式,可以通过硬件的方式设置端模式,也可以通过软件的方式来设置(V6版本以上)
    在这里插入图片描述

    大端格式(Big-endian)
    最低地址是该数据的地址(A)
    最高有效字节(MSB, Most Signifcant Byte) 放内存低地址(A)
    最低有效字节(LSB,Least Significant Byte)放内存高地址(A+3)
    在这里插入图片描述

    小端格式(Little-endian)
    最低地址是该数据的地址(A)
    最高有效字节(MSB, Most Signifcant Byte) 放内存高地址(A+3)
    最低有效字节(LSB,Least Significant Byte)放内存低地址(A)
    在这里插入图片描述

    大小端具体实例
    变量A:Word A = 0x f6 73 4b cd,在内存中的起始地址为0xb3 20 45 00
    变量B:half word B= 218,在内存中的起始地址为0x dd dd dd d0

    在这里插入图片描述

  • 相关阅读:
    这个神器,让我的 Python 代码运行速度快了100倍
    SpringBoot跨域配置
    [Numpy] 广播机制(Broadcast)
    【数据结构】线性表(四)双向链表的各种操作(插入、删除、查找、修改、遍历打印)
    SpringMVC基本配置
    大型语言模型的智能助手:检索增强生成(RAG)
    智能驾驶规划控制理论学习01-自动驾驶系统介绍、规划控制模块介绍
    Android Framework开发rom实战合集课表/车载车机手机高级系统开发工程必会技能
    力扣283题:移动零
    案例分享 | 戴尔 VxRail 研发团队: 效能度量如何支持成长期团队的超线性增长
  • 原文地址:https://blog.csdn.net/weixin_43586667/article/details/132637872
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号