第二章知识梳理
1.CPU由運算器、控制器、寄存器等器件構成,這些器件靠內部總線(區別于前面所說的外部總線)相連。
? ? 內部總線:實現CPU內部各個器件的相連。
? ? ?外部總線:實現CPU和主板上各個器件的相連。
2.寄存器:對于匯編語言,是CPU中的主要部件。程序員通過改變各種寄存器的內容實現對CPU的控制。
? ? ? ? ? ? ? ? ? ?不同CPU寄存器的個數、結構不相同。
? ? ? ? ? ? ? ? ? ? 8086CPU14個寄存器。
3.通用寄存器。
8086CPU:所有寄存器都是16位的,AX,BX,CX,DX被稱為通用寄存器。
? ? ? ? ? ? ? ? ? ? AX,BX,CX,DX這四個存儲器可分為兩個獨立的8位寄存器來使用。AX(BX,CX,DX)分為A(B,C,D)H和A(B,C,D)L;
4.字在寄存器中的存儲:字記為word,一個字兩個字節,分為高位字節和低位字節。
5.幾條匯編指令。
(1)mov 指令:傳送指令,將寄存器中的值送到另個寄存器中或將值傳送到寄存器中。
(2)add指令:相加指令,將寄存器的值與另一個寄存器的值或另一個值相加送入到寄存器中。
注意:在進行數據傳送運算時,要注意指令的兩個操作對象的位數是一致的。
6.物理地址:每一個內存單元存在的唯一地址。
8086CPU:
(1)16位機:運算器一次最多處理16位的數據。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?寄存器的最大寬度為16位。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 寄存器和運算器之間的通路是16位。
(2)物理地址=段地址*16+偏移地址=基礎地址+偏移地址。
7.段:內存沒有分段,CPU可以分段,是根據編程的需要而進行的一種劃分。
? ? ? ? ? ?地址連續,起始地址為16的倍數的一組內存單元,起始地址為段的基礎地址,偏移地址為段的長度。
8.段寄存器:存放段地址的寄存器。
?8086CPU:4個段寄存器:CS,DS,SS,ES.
9.CS和IP:8086CPU中兩個最關鍵的寄存器,指示了CPU當前要讀取指令的地址。
? ? ? ? ? ? ? ? ? ?CS:代碼段寄存器。
? ? ? ? ? ? ? ? ? ? IP:指令指針寄存器。
任意時刻,CPU將CS:IP指向的內容當作指令執行。
10.8086CPU的工作過程:
(1)從CS:IP指向的內存單元讀取指令,讀取的指令進入指令緩沖區;
(2)IP=IP+所讀取指令的長度,從而指向下一條指令;
(3)執行指令,轉到步驟(1),重復這個過程。
11.jmp指令修改CS;IP的值:
(1)jmp 段地址:偏移地址的指令完成。
(2)jmp 某一合法的寄存器,用寄存器中的值修改IP。
12.代碼段:地址連續、起始地址是16的倍數的存放代碼的內存單元。
代碼段的執行:將一段內存單元看作是代碼段,僅僅是編程的一種安排,CPU是不會自動識別出指令和數據的,所以將CS:IP指向所定義的代碼段中所執行的第一條指令的首地址即可執行代碼段中的內容。
?
?
? ? ? ? ? ? ? ? ? ? ??
? ? ? ??
? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ?
轉載于:https://www.cnblogs.com/fxdtz/p/9926712.html
總結
- 上一篇: spring(三)-事务管理
- 下一篇: bzoj 1731: [Usaco200