關於暫存器的總結

2022-06-01 10:30:11 字數 1419 閱讀 2853

本章學習圍繞暫存器展開,學習了cpu概述、通用暫存器、字在暫存器中的存放、彙編指令: mov, add、8086給出實體地址的方法、段暫存器cs和指令指標暫存器ip這幾個知識點。以下我便逐個寫出我認為該知識點中的值得注意的地方。

1、cpu中有字長與位寬兩個概念,字長表示cpu在單位時間內能一次處理的二進位制位數。該指標反映出cpu內部運算處理的速度。位寬表示cpu通過外部資料匯流排與記憶體之間一次能夠傳送的資料位。我們常說的x位暫存器其實指的便是cpu的字長。

2、8086cpu的14個暫存器中只有ax、bx、cx、dx這四個通用暫存器可拆分為高八位和低八位兩個暫存器.。

3、在mov和add指令中,兩個操作物件的位數應一致。也就是說執行指令之前資料位數不可高於暫存器位數,而執行指令之後可以(高於部分將被捨去)。如add 案例,100h便是一條錯誤的語句。

4、每乙個記憶體單元在這個空間中都有唯一的位址,這個唯一的位址稱為實體地址。而8086結構表現實體地址時會出現障礙,因為8086內部的暫存器都是16位的,而外部位址匯流排寬度為20位。也就是說8086存只能存16位(64kb),傳卻能傳20位(1mb)。為了解決這一問題8086cpu採用了用兩個16位位址合成乙個20位的實體地址的方法,方法公式如下:

基礎位址(段位址*16)+偏移位址=實體地址

值得注意的是,段只是乙個邏輯上的概念,同乙個實體地址可以拆分為多個不同的段位址和偏移位址的組合,可以根據需要,將位址連續、起始實體地址為16倍數的一組記憶體單元(不超過64kb)當作乙個段使用。

5、段位址*16還有乙個更常用的說法是左移四位,此處的位數指的是二進位制位數。乙個數值的二進位制形式左移n位,相當於該資料乘以2的n次方。乙個x進製的資料左移1位,相當於乘以x。故而二進位制左移4位其實就是十六進製制左移一位。舉例:20h的資料乘以16後便會變成200h。

6、cs是**段段暫存器,用於存放**段的段位址。ip是指令指標暫存器,用於存放cpu將要讀取的指令在**段中的偏移位址。cs:ip對應的實體地址存放的是cpu將要讀取的指令。cs和ip在總是成對出現,(cs) × 16 + (ip)  = 指令的實體地址

7、計算機的工作過程有如下三個步驟:

第1步: cpu基於cs:ip,計算出實體地址,然後到相應的記憶體單元讀取指令,送到指令緩衝區。

第2步: cpu自動修改ip的值,ip = ip + 所讀取指令的長度,從而為下一條指令讀取做準備;

第3步: 執行指令。 轉第1步,重複此過程。

8、在cpu剛開始工作時,cs和ip被設定為cs=ffffh,ip=0000h。若需指定cs和ip的值,則用指令cmp修改其二者內容。

(2) 只修改ip的內容:jmp   某一合法暫存器(注意此處需要用一暫存器來對ip賦值,不可直接將資料傳給ip)

關於課前做的quiz我有乙個小提議,希望能多給我們一些時間。每次做題總感覺很倉促,來不及思考便要開始下一題,導致很多會做的題目做錯。

關於暫存器

32位機裡完整的保留了16位定址模式。即 定址能力為1m 分段機制 每段不超過64kb。這就是通常所說的 實模式 在位址儲存模型中屬於 實位址儲存模型 其次,考慮到程式通常都是功能化的模組,所以分段雖然不是必要的,但分段卻能大大提高程式設計者管理程式的效率。故而32位機也採用了段 偏移的模式來定址。...

關於暫存器

eax eax 是 累加器 accumulator 它是很多加法乘法指令的預設暫存器。ebx 是 基位址 base 暫存器,在記憶體定址時存放基位址。棧底指標。esp 暫存器存放當前執行緒的棧頂指標 ecx 是計數器 counter 是重複 rep 字首指令和loop指令的內定計數器。edx 則總是...

暫存器總結

1.32位通用暫存器 eax 32 其低16位為ax ah 高8位 al 低8位 ebx bx bh bl ecx cx ch cl edx dx dh dl 2.32位通用暫存器 ebp 其低16位為 bp,但沒有對應的8位暫存器 ebp 32 bp 16 esp 32 sp 16 esi 32 ...