深入理解计算机系统——2.1.4寻址和字节顺序

对于跨越多字节的程序对象,我们必须建立两个规则:

这个对象的地址是什么?储存器如何排列这些字节?

在几乎所有的机器上,多字节对象被储存为连续的字节序列,

对象的地址为所使用的整个字节中首地址(最小地址)。

例如:一个int 的变量X的地址为0x100,

那么X被储存在储存器中的0x100,0x101,0x102,0x103的位置。

类似地考虑一个W位的整数,位表示为[Xw-1],[Xw-2],[Xw-3]...[X1],[X0].

其中Xw-1是最高有效位,X0是最低有效位。

假设W是8的倍数,这些位就能被分为字节,其中最高有效字节包含位[Xw-1]...[Xw-8].

最低有效字节包含位[X7]...[X0].其他字节包含中间的位。

某些机器选择在储存器中按照从最低有效字节到最高有效字节的顺序储存对象,此为小端法;

某些机器选择在储存器中按照从最高有效字节到最低有效字节的顺序储存对象,此为大端法;

假设变量X类型为int,位于地址0x100处,它的十六进制值为0x01234567.地址范围为0x100-0x103的字节,其排列顺序依赖机器类型。
大端法:

0x100 0x101 0x102 0x103

01 23 45 67

高位字节的十六进制值为0x01.低位字节的十六进制值为0x67.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值