初識暫存器,字,大端小端(csapp第二版)

2021-08-17 06:49:22 字數 1329 閱讀 5809

暫存器的處理速度相當快,它的基本單元是d觸發器,操作速度快,但是儲存容量小,占用面積大,所以數量相較而言較少。

(ppt來自湖南大學黃麗達老師教授的計算機系統)

從圖中可以看出,我們的8個32位暫存器都有固定的名稱。通常來說,暫存器都是由它的名稱代表,而不說它的位址,位址常見於指代記憶體的儲存單元。

學習彙編的時候我們需要對儲存器的位數、名稱、以及乙個儲存器的內部的各個小部分十分熟悉。

例如我們的%eax,這是我們所說的(x86)32位cpu中包含一組8個32bit的通用暫存器裡面的乙個暫存器。它是32位的。其中,這個儲存器的低16位也可以用%ax來代表。然而低16位裡面又可以分為兩個部分,高8位叫做%ah,低8位我們叫做%al。

(來自於湖南大學黃麗達老師教授的計算機系統)

字長字長是指cpu的每個字所包含的位數。根據計算機的不同,字長有固定的和可變的兩種。固定字長,即字長度不論什麼情況都是固定不變的;可變字長,則在一定範圍內,其長度是可變的。

可以看出,我們固定的是,一位就是乙個bit,乙個位元組byte就是8位。字長的大小是不確定的。而且cpu一次操作處理的實際位數一定和字長一致。也就是說,你的計算機是多少位的,那麼你計算機的字長就是多少位,意味著cpu一次操作可以處理多少位資料。

(來自於湖南大學黃麗達老師教授的計算機系統)

大端和小端的問題。

這個例子挺靈活的。

首先我們需要對幾個條件熟悉。首先intel系列機器一般是小端儲存的。其次這裡是單子單元,(課程預設單字為16位),那麼就是8bit+8bi=1byte+1byte也就是兩個記憶體的儲存單元。我們的起始位址為0x56782,又因為我們計算機都是從低位址讀到高位址,那麼從0x56782讀取到0x56,從0x56783讀取到0x29,那麼我們現在處理一下哪個數是高位,哪個數是低位。

因為intel系列機器是小端儲存,所以高位儲存在低位址。所以說0x29是高位,從而讀取的資料為

0x2956

這裡有乙個地方想強調一下,大端小端是指計算機的儲存方式,但是讀取的話都是從低位址讀取到高位址的。這是乙個要注意的點。

PowerPC處理器的暫存器大端小端影響寫入感想

先放結論 沒啥影響。這兩天又要重新撿起來mpc8377的板子開始做專案,因為sylixos的核心有所變動,網絡卡協議棧多做了一層封裝,所以網絡卡驅動也有相應變化,需要重新修改一下。然後考慮到上次我寫的中斷驅動實在太醜,看到人家工程師寫的中斷驅動 比我好看很多,所以決心在重寫網絡卡驅動前先把中斷控制器...

儲存器 大端模式與小端模式

開頭講個有關大端小端的故事 端模式 endian 的這個詞出自jonathan swift書寫的 格列佛遊記 這本書根據將雞蛋敲開的方法不同將所有的人分為兩類,從圓頭開始將雞蛋敲開的人被歸為big endian,從尖頭開始將雞蛋敲開的人被歸為littile endian。小人國的內戰就源於吃雞蛋時是...

小知識 總結CSRs暫存器的讀寫指令

在之前的文章中介紹scr1時,對cpu ipic register操作指令是有限制的,只能用csrrw csrrwi。那這堆指令到底什麼區別呢 針對csrs操作指令,我們來重新梳理一下。首先明確,真正的機器碼只有6條指令 csrrw csr read and write 這是讀寫操作,csr中的值寫...