1. 程式人生 > >匯編語言第二章總結

匯編語言第二章總結

關系 第二章 通過 並不是 結構 段地址 偏移地址 總結 不同的

第二章裏我們學習了寄存器的內容。了解到一個典型的CPU由運算器、控制器、寄存器等器件構成,這些器件靠內部總線相連。前一章所說的總線,相對於CPU內部來說是外部總線。內部總線實現CPU內部各個器件之間的聯系,外部總線實現CPU和主板上其他器件的聯系。在CPU中,運算器進行信息處理;寄存器進行信息存儲;控制器控制各種器件進行工作;內部總線連接各種器件, 在它們之間進行數據的傳送。

對於一個匯編程序員來說,CPU中的主要部件是寄存器。寄存器是CPU中程序員可以用指令讀寫的部件。程序員通過改變各種寄存器中的內容來實現對CPU的控制。不同的CPU,寄存器的個數、結構是不相同的。8086CPU14個寄存器,每個寄仔器有一個名稱。這些寄存器是

: AXBXCXDXSIDISPBPIPCSSSDSESPSW

一個字可以存在一個16位寄存器中,這個字的高位字節和低位字節自然就存在這個寄存器的高8.位寄存器和低8位寄存器中。若一個字型數據20000, 存在AX寄存器中,在AH中存儲了它的高8位,在AL中存儲了它的低8位。AHAL中的數據,既可以看成是一個字型數據的高8位和低8位,這個字型數據的大小是20000;又可以看成是兩個獨立的字節型數據,它們的大小分別是7832

CPU訪問內存單元時,要給出內存單元的地址。所有的內存單元構成存儲空間是一個一維的線性空間,每一一個內存單元在這個空間中都有唯一的地址, 我們將這個唯一的地址稱為物理地址。

CPU通過地址總線送入存儲器的,必須是一一個內存單元的物理地址。在CPU向地址總線上發出物理地址之前,必須要在內部先形成這個物理地址。不同的CPU可以有不同的形成物理地址的方式。

在編程時可以根據需要,將若幹地址連續的內存單元看作一個段,用段地址x16定位段的起始地址(基礎地址),用偏移地址定位段中的內存單元。有兩點需要註意: 段地址x16必然是16的倍數,所以一個段的起始地址也一定是16的倍數; 偏移地址為16位,16位地址的尋址能力為64KB, 所以一個段的長度最大為64KB

CSIP8086CPU中兩個最關鍵的寄存器,它們指示了CPU當前要讀取指令的地址。CS為代碼段寄存器,IP

為指令指針寄存器,從名稱上我們可以看出它們和指令的關系。在8086PC機中,任意時刻,設CS中的內容為MIP中的內容為N8086CPU將從內存Mx16+N單元開始,讀取一條指令 並執行。

CPU中,程序員能夠用指令讀寫的部件只有寄存器,程序員可以通過改變寄存器中的內容實現對CPU的控制。CPU從何處執行指令是由CSIP中的內容決定的,程序員可以通過改變CSIP中的內容來控制CPU執行目標指令。

我們在適當的時候,會用已知的匯編指令的語法來描述新學的匯編指令的功能。采用一種“用匯編解釋匯編”的方法來使讀者更好地理解匯編指令的功能,這樣做有助於讀者進行知識的相互融會。要強調的是,我們是用“已知的匯編指令的語法”進行描述,並不是用“已知的匯編指令”來描述。

匯編語言第二章總結