当前位置: 首页 > news >正文

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

在这里插入图片描述

http://www.lryc.cn/news/151179.html

相关文章:

  • leetcode原题: 最大数
  • docker 是什么
  • 基于Gin框架的HTTP接口限速实践
  • WSL中为Ubuntu和Debian设置固定IP的终极指南
  • axios+vite配置反向代理踩坑记录
  • Spring IOC的理解
  • 2023年京东箱包行业数据分析(京东数据运营)
  • 对称加密 非对称加密 AC认证 https原理
  • 如何在PyQt应用程序中使用Qt Designer和Pyuic工具?
  • 【云计算•云原生】5.云原生之初识DevOps
  • 20230830工作心得:巧用标记位和For循环遍历
  • AUTOSAR规范与ECU软件开发(实践篇)7.9 MCAL模块配置方法及常用接口函数介绍之Can的配置
  • SpringBoot整合websockt实现消息对话
  • MIME类型(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展类型)MultipartFile 多媒体文件上传
  • 数据库(MySQL)的存储过程
  • Flutter:getX的学习
  • leetcode - 360周赛
  • Android 1.1 背景相关与系统架构分析
  • 系统架构技能之设计模式-抽象工厂模式
  • clangd的使用,实现跳转提示
  • 2023应届生java面试搞笑之一:CAS口误说成开心锁-笑坏面试官
  • nginx-concat
  • Java 大厂面试 —— 常见集合篇 List HashMap 红黑树
  • 剪枝基础与实战(5): 剪枝代码详解
  • Acwing 897. 最长公共子序列 (每日一题)
  • CSS中border-radius的来美化table的实战方案
  • 移除链表元素_每日一题
  • spring boot + Consul 示例 (Kotlin版)
  • Git企业开发控制理论和实操-从入门到深入(四)|Git的远程操作|Gitee
  • SpringCloudAlibaba Gateway(二)详解-内置Predicate、Filter及自定义Predicate、Filter