王爽《組合語言》第三版 第二章 暫存器

2022-08-21 07:36:14 字數 1958 閱讀 6767

cpu概述

乙個典型的cpu由運算器、控制器、暫存器等器件組成,這些器件靠內部匯流排相連。

內部匯流排實現cpu內部各個器件之間的聯絡,外部匯流排實現cpu和主機板上其它器件的聯絡。

8086cpu有14個暫存器 它們的名稱為:ax、bx、cx、dx、si、di、sp、bp、ip、cs、ss、ds、es、psw。

2.1 通用暫存器

8086cpu所有的暫存器都是16位的,可以存放兩個位元組。

8086上一代cpu中的暫存器都是8位的;

為保證相容性,這四個暫存器都可以分為兩個獨立的8位暫存器使用。

1.ax可以分為ah和al;

2.bx可以分為bh和bl;

3.cx可以分為ch和cl;

4.dx可以分為dh和dl。

2.2 字在暫存器中的儲存

2.3 幾條彙編指令

2.4 實體地址

cpu訪問記憶體單元時要給出記憶體單元的位址。所有的記憶體單元構成的儲存空間是乙個一維的線性空間,這個唯一的位址稱為實體地址。

2.5 16位結構的cpu

概括的講,16位結構描述了乙個cpu具有以下幾個方面特徵:

1、運算器一次最多可以處理16位的資料。

2、暫存器的最大寬度為16位。

3、暫存器和運算器之間的通路是16位的。

2.6 8086cpu給出實體地址的方法

8086有20位位址匯流排,可傳送20位位址,定址能力為1m。

8086內部為16位結構,它只能傳送16位的位址,表現出的定址能力卻只有64k。

2.7 「段位址×16+偏移位址=實體地址」的本質含義

2.8 段的概念

記憶體並沒有分段,段的劃分來自於cpu,由於8086cpu用「(段位址×16)+偏移位址=實體地址」的方式給出記憶體單元的實體地址,使得我們可以用分段的方式來管理記憶體。

段位址×16 必然是 16的倍數,所以乙個段的起始位址也一定是16的倍數。

偏移位址為16位,16 位位址的定址能力為 64k,所以乙個段的長度最大為64k。

2.9 段暫存器

段暫存器就是提供段位址的。

8086cpu有4個段暫存器:cs、ds、ss、es

2.10 cs和ip

cs和ip是8086cpu中最關鍵的暫存器,它們指示了cpu當前要讀取指令的位址。

1.cs為**段暫存器;

2.ip為指令指標暫存器。

(1)從cs:ip指向記憶體單元讀取指令,讀取的指令進入指令緩衝器;

(2)ip = ip + 所讀取指令的長度,從而指向下一條指令;

(3)執行指令。 轉到步驟 (1),重複這個過程。

在8086cpu 加電啟動或復位後( 即 cpu剛開始工作時)cs和ip被設定為cs=ffffh,ip=0000h。

不能夠通過mov指令改變cs、ip的值,只能夠通過專門的指令jmp修改,jmp 暫存器表示只修改ip的值。

2.12 **段

cpu 只認被 cs:ip 指向的記憶體單元中的內容為指令,所以要將cs:ip指向所定義的**段中的第一條指令的首位址。

debug命令:

r命令檢視、改變cpu暫存器的內容;

d命令檢視記憶體中的內容;

e命令改寫記憶體中的內容;

u命令將記憶體中的機器指令翻譯成彙編指令;

t命令執行一條機器指令;

a命令以彙編指令的格式在記憶體中寫入一條機器指令。

組合語言(王爽)第二章暫存器

乙個典型的cpu由運算器 控制器 暫存器等部件組成,部件之間靠內部匯流排連線。運算器進行資訊處理,暫存器進行資訊儲存 控制器控制各部件進行工作,內部匯流排連線各部件以進行資料的傳輸。不同的cpu暫存器的個數和結構都是不盡相同的。2.1通用暫存器 以8086為例,其內部所有暫存器都是16位的,即兩個位...

組合語言第三版(王爽著) 第11章 標誌暫存器

標誌暫存器的作用 用來儲存相關指令的某些執行結果 用來為cpu執行相關指令提供行為依據 用來控制cpu的相關工作方式 其中儲存的資訊通暢被稱為程式狀態字 psw 簡稱flag flag 和其他暫存器不一樣,其他暫存器是用來存放資料的,都是整個暫存器具有乙個含義。而flag暫存器是按位起作用的。也就是...

《組合語言(第三版)》標誌暫存器

標誌暫存器 8086cpu中的flag暫存器包括 cf pf zf sf of df。傳送指令不影響標誌暫存器 zf標誌暫存器 zf標誌暫存器位於flag中的第6為,表示零標誌位。至於flag是什麼,暫時不用管 zf暫存器的作用 判斷指令執行後結果是否為0。舉例mov ax,1 sub ax,1 該...