搜索

关于大端模式与小端模式的介绍

gecimao 发表于 2019-05-08 17:45 | 查看: | 回复:

  数据组织是指数据的传送顺序。目前常见的32为处理器的数据总线位数据的最高字节可以放在数据总线位传送,也可以放在数据总线位传送,因此出现了大端和小端两种数据组织方法。大端是指一个数据的最高位放在数据总线的最低位传送或者放在地址较小的存储器位置存储;小端是指一个数据的最高位放在数据总线的最高位传送或者放在地址较高的存储器位置存储。Wishbone同时支持大端和小端两者数据组织方式。当数据总线的粒度和宽度相同时,大端和小端是一样的。

  所谓的大端模式(Big-endian),是指数据的高字节,保存在内存的低地址中,而数据的低字节,保存在内存的高地址中,这样的存储模式有点儿类似于把数据当作字符串顺序处理:地址由小向大增加,而数据从高位往低位放;

  在大端模式下,前32位应该这样读: e6 84 6c 4e ( 假设int占4个字节)

  所谓的小端模式(Little-endian),是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中,这种存储模式将地址的高低和数据位权有效地结合起来,高地址部分权值高,低地址部分权值低,和我们的逻辑方法一致。

  在小端模式下,前32位应该这样读: 4e 6c 84 e6( 假设int占4个字节)

  目前Intel的80x86系列芯片是唯一还在坚持使用小端的芯片,ARM芯片默认采用小端,但可以切换为大端;而MIPS等芯片要么采用全部大端的方式储存,要么提供选项支持大端可以在大小端之间切换。另外,对于大小端的处理也和编译器的实现有关,在C语言中,默认是小端(但在一些对于单片机的实现中却是基于大端,比如Keil 51C),Java是平台无关的,默认是大端。在网络上传输数据普遍采用的都是大端。[

  这两者数据组织方式在一般文献中都可以找到。总线标准只定义接口的通信协议,而数据的组织本质上取决于主设备和从设备的设计。有时需要将大端和小端的接口互联起来,图22给出了将数据组织为大端的IP A和数据组织为大端的IP B相连的情形。IP A和IP B的数据总线大端和小端的接口互联

本文链接:http://megsmind.net/dizhizongxian/351.html
随机为您推荐歌词

联系我们 | 关于我们 | 网友投稿 | 版权声明 | 广告服务 | 站点统计 | 网站地图

版权声明:本站资源均来自互联网,如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

Copyright @ 2012-2013 织梦猫 版权所有  Powered by Dedecms 5.7
渝ICP备10013703号  

回顶部