完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
在计算机系统当中,数据的存储是以字节为单位的,每个地址单元当中都可以存放一个字节的数据,每个字节为8bit。在C语言中编译器为char型的数据分配了一个字节的存储空间,为long型的数据分配了4个字节的存储空间,为int型的数据分配了2个字节的存储空间(要看具体的编译器),这样当所定义的数据类型占用的存储空间大于一个字节时就需要用多个字节的空间来存储一个数据,即一个数据占用了多了地址单元,这样就存在着一个存储顺序的问题,即这几个字节在内存单元中是以什么样的顺序来存储的。
在ARM体系中通常采用的字节存储机制主要有两种:Big-Endian(大端模式)Little-Endian(小端模式)。Big-Endian是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中。Little-Endian是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。 举一个例子,比如十六进制数字0x12345678在内存中的表示形式为: 1)大端模式: 低地址 -----------------> 高地址 0x12 | 0x34 | 0x56 | 0x78 2)小端模式: 低地址 ------------------> 高地址 0x78 | 0x56 | 0x34 | 0x12 在ARM体系结构中采用Big-Endian存储模式还是Little-Endian存储模式都各有利弊,比如在Little-Endian模式下强制转换数据不需要调整字节内容,而在Big-Endian模式下符号位的判定固定为第一个字节,与Little-Endian模式相比较更容易判断数据的正负。 在ARM体系中默认的存储格式为小端对齐,但ARM处理器还可以由硬件来选择是大端模式还是小端模式。 |
|
相关推荐
|
|
|
|
|
|
|
|
1146 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程介绍之烧写所需镜像
1225 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-mfgtools烧录流程之烧写方法
675 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-内核编译之初次编译
1019 浏览 0 评论
飞凌嵌入式ElfBoard ELF 1板卡-内核源代码的目录结构和文件说明
937 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-23 19:27 , Processed in 0.601498 second(s), Total 70, Slave 53 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号