字节序

  将多字节数据存储在内存中时,各字节的存储顺序称为字节序。比如,将4 字节数据0x12345678 放入内存时,地址0 中放0x12、地址1 中放0x34、地址2 中放0x56、地址3 中放0x78 的方式,称为大端序。相对地,地址0 中放0x78、地址1 中放0x56、地址2 中放0x34、地址3 中放0x12 的方式,称为小端序。这两种数据存储方式请参见图1-10。

  对人类来说,大端序理解起来比较容易,然而对计算机来说,小端比较容易操作,因为不同长度数据的低位位置是相同的。

  不同的CPU 采用的字节序也不尽相同,由此产生的软件通用性和可移植性的问题也屡屡发生。Intel 公司的x86 架构采用的是小端序,而Sun(现属Oracle)公司的SPARC 处理器和MIPS 科技公司的MIPS 处理器等采用的是大端序。


  很多处理器考虑到软件的通用性和可移植性,同时支持两种字节序并可依据程序切换,这种方式称为双端序。

 

  访问I/O 的方式大致分为存储器映射I/O 和端口映射I/O 两种。

  存储器映射I/O 方式中,I/O 也和内存一样使用地址进行管理,可以和访问内存一样的方式进行访问。存储器映射I/O 的概要如图1-12 所示。存储器映射I/O 方式中,由于使用访问内存的指令进行I/O 访问,硬件上较为简化。但缺点是,I/O 也会占用地址空间。

  端口映射I/O 方式中,CPU 含有支持访问I/O 的专用指令。端口映射I/O 的概要如图1-13 所示。端口映射I/O 方式的优点,一是地址空间可以全部分配到内存,二是内存和I/O 的访问可以在指令级别区分。但是,由于需要专用指令,缺点是硬件设计变得复杂。

 

posted @   牧师/preacher  阅读(422)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示