当前位置: 移动技术网 > 科技>办公>内存 > 嵌入式系统数据存储的大端模式小端模式应用举例0x12345678存储到8000H

嵌入式系统数据存储的大端模式小端模式应用举例0x12345678存储到8000H

2020年08月01日  | 移动技术网科技  | 我要评论
一、背景:因为不同架构的处理器,所以造成了数据在各种处理器中数据存储方式的不同;一般情况下分为两种,一种是大段模式,另外一种是小段模式。通常情况下:x86、ARM,DSP架构处理器都是小端模式,而Motorola为大端模式。二、大小端模式的概念:小端模式:指数据的高位保存在内存的高地址中,而数据的低位则保存在内存的低地址中;大端模式:是指数据的高位保存在内存的低地址中,而数据的低位则保存在内存的高地址中。可以看出两种存储数据的方式正好相反。三、应用举例:以存储一个32位数0x12

一、背景:

因为不同架构的处理器,所以造成了数据在各种处理器中数据存储方式的不同;一般情况下分为两种,一种是大端模式,另外一种是小端模式。通常情况下:x86、ARM,DSP架构处理器都是小端模式,Motorola等为大端模式。

二、大端小端模式的概念:

小端模式(Little-endian):指数据的高数据位保存在内存的高地址中,而数据的低数据位则保存在内存的低地址中;

大端模式(Big-endian):是指数据的高数据位保存在内存的低地址中,而数据的低数据位则保存在内存的高地址中。

可以看出两种存储数据方式正好相反。

三、应用举例:

以存储一个32位数0x12345678到8000H~8003H四个字节单元中为例,讲解一下数据分别以大端模式和小端模式在内存中的存储不同;

数据大小端模式存储举例
地址 8003H 8002H 8001H 8000H
小端模式 12 34 56 78
大端模式 78 56 34 12

内存中8000H为低地址,内存地址从8001H-->8001H-->8002H-->8003H以此递进增加,所以8003H为内存地址的高地址;小端模式下:低字节数据存放在内存的低地址中,所以低字节的0x78存放在低地址8000H中,0x56存放在8001H中,以此类推;而大端模式下:高字节数据存放在内存的低地址中,所以数据0x12存放在8000H中,以此类推。

 

因为处理器可以访问的最小单元为字节(1Byte=8bit),所以32位数据0x12345678会被分为4Byte分别存储在4个字节单元中,合如下表可以看出小端模式下,内存中各个数据bit位的详情;

bit位 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
十六进制 12 34 56 78
进制转换↓ 1 2 3 4 5 6 7 8
二进制 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 0 1 1 1 0 0 0 0
1Byte=8bit Byte 3 Byte 2 Byte 1 Byte 0

 


因为小编自己能力水平有限,文中难免有错误或表达失误的信息,还望广大阅读者留言批评指正,谢谢。

本文地址:https://blog.csdn.net/praguejing/article/details/108220356

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网