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 該...