計算機組成原理系列學習二 大端模式和小端模式

2022-08-18 00:15:12 字數 2074 閱讀 3533

上節計算機組成原理課講到了大端編址和小端編址。

首先,大端編址(big-endian)和小端編址(little-endian)是兩種位元組儲存機制,兩種位元組序。標準的big-endian和little-endian的定義如下:

a) little-endian就是低位位元組排放在記憶體的低位址端,高位位元組排放在記憶體的高位址端。

b) big-endian就是高位位元組排放在記憶體的低位址端,低位位元組排放在記憶體的高位址端。

一.什麼是高低位址端

----------------------- 最高記憶體位址 0xffffffff

棧底

棧頂

-----------------------

null (空洞)

-----------------------

-----------------------

未初始 化的資料

----------------------- 統稱資料段

初始化的資料

-----------------------

正 文段(**段)

----------------------- 最低記憶體位址 0x00000000

由圖可以看出,在記憶體分布中,棧是向下增長的,而堆是向上增長的。

----------

buf[3]

buf[2]

buf[1]

buf[0]

----------

棧頂 (低位址)

二.什麼是高低位元組。

拿0x12345678來說,從高位到低位的位元組依次是0x12、0x34、0x56和0x78。

big-endian: 低位址存放高位,如下圖:

棧底 (高位址)

---------------

buf[3] (0x78) -- 低位

buf[2] (0x56)

buf[1] (0x34)

buf[0] (0x12) -- 高位

---------------

棧頂 (低位址)

little-endian: 低位址存放低位,如下圖:

棧底 (高位址)

---------------

buf[3] (0x12) -- 高位

buf[2] (0x34)

buf[1] (0x56)

buf[0] (0x78) -- 低位

--------------

棧 頂 (低位址)

三.編寫程式測試cpu是大端編址還是小端編址。

1 #include2 #include3

4using

namespace

std;

5int

main()6c;

12 c.a=1;13

if(c.b==1)14

17else

1821

return0;

22 }

view code

方法二:通過指標型別強制轉換並對整型資料首位元組賦值,判斷該賦值賦給了高位還是低位。

1 #include2

3int

main()411

else

1215

return0;

16 }

view code

經過測試,我的電腦是小端編址,這與上課所學的x86是小端編址,mips是大端編址相符。

計算機組成原理二

1.指令的格式 每條指令等長,均為2個位元組 第乙個位元組的高四位是操作碼,低四位作為表示暫存器號 第二個位元組是儲存單元位址 2.計算機啟動過程 1 計算機啟動後,從bios晶元中取出指令,進行執行,這段程式就是在實模式在進行的。2 設定cpu中pe 1,作業系統進入保護模式,如果任務需要會進入虛...

計算機組成原理二

計算機的基本組成 一.馮諾依曼計算機的特點 儲存程式通用方案 edvac 1.特點1 五大部分組成 運算器 控制器 儲存器 輸入裝置 輸出裝置 2指令和資料以同等地位存於儲存器 可按定址訪問 3.指令和資料都用二進位制表示 4.指令由操作碼和位址碼組成。操作碼指指令做什麼操作,位址碼指運算元所在的位...

計算機組成原理筆記(二)

通過下面的思維導圖來依次分享 資料的表示和運算 裡面重要知識點的筆記。1.真值 需要用正 負號來分別表示正數 正號可以省略 負數的數稱為真值,真值是機器數所代表的實際值。2.機器數 將資料的符號數位化,即用 0 表示 正 用 1 表示 負 3.bcd碼 二進位制的十進位制數 binary coded...