许多嵌入式系统程序员对Little endian和Big endian模式的概念模糊不清,其实Little endian和Big endian是多字节寻址的微处理器中,两种数据书写和存储顺序的排列方式(格式)。
1、Little endian:多字节数据中,书写时字节从右向左排列(MSB…LSB),存储时高位地址存放高位数据(MSB)。Little endian是最常用的模式,其书写格式(例如“反汇编”出来的源代码)与传统的十进制和二进制数据的书写格式相同,现在主流微处理器,包括8051系列单片机、Intel 8x86 CPU等都采用这种模式。
2、Big endian:多字节数据中,书写时字节从左向右排列(LSB…MSB),存储时高位地址存放低位数据(LSB)。Big endian模式仅Motorolra(现为Freescale)等少数几个公司的CPU采用。
TI公司的DSP通过配置可以选用Little endian和Big endian两种模式,但通常都配置为Little endian模式。
假设从地址0x0000开始保存有数据0xEF23(或0EF23H)。
●Little endian模式:书写表达:0xEF23, 在内存中的存放顺序是0x0000-0x23, 0x0001-0xEF。
●Big endian模式:书写表达:0x23EF,在内存中的存放顺序是0x0000-0xEF, 0x0001-0x23。
需要特别说明的是, 以上假设系统是每个内存单元以8位即一个字节为单位的。 简单的说, Little endian把低字节存放在内存的低位;而Big endian将低字节存放在内存的高位。
用户1029253 2015-9-21 09:15
用户1521235 2012-10-28 19:53
用户1406868 2011-10-24 19:58
看看,辛苦了
用户1327786 2011-10-8 17:10
用户1617817 2011-10-5 13:12
用户1612036 2011-9-23 20:06
845753115_744752332 2011-9-23 19:34
用户1601291 2011-9-23 14:11
用户1620221 2011-8-15 11:54
用户1406868 2011-7-20 21:48
解释的非常好,容易理解,把我几天一直困惑的问题解决了,谢谢