1. 程式人生 > >深入理解計算機系統——2.1.4定址和位元組順序

深入理解計算機系統——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.