《彙編語言(王爽)》第二章——寄存器(CPU工作原理)【總結】

8086 CPU有14個寄存器(均爲16位):AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW


1、通用寄存器:

AX、BX、CX、DX

16位,可存儲的數據的最大值爲2^16-1

每個寄存器可分爲兩個獨立使用的8位寄存器,eg. AX可分爲AH、AL

2、字在寄存器中的存儲:

8086中一個字=2B(高位字節、低位字節)

3、幾條彙編指令(不區分大小寫):

ADD AL,93H   ;若產生進位,不會修改AH

指令的兩個操作對象的位數應當一致

4、物理地址(CPU內部形成)

5、16位結構的CPU(8086內部能夠一次處理、傳輸、暫存的信息的最大長度爲16位)

6、8086給出物理地址的方法

8086CPU有20位地址總線,1MB的尋址能力,但是隻能送出16位地址,因此——>段地址、偏移地址

段地址、偏移地址——> 地址加法器——> 物理地址=段地址*16+偏移地址(相當於段地址左移4位)

7、“段地址*16+偏移地址=物理地址”的本質含義(“基礎地址+偏移地址=物理地址”的思想)

8、段的概念

段的起始地址一定是16的倍數;偏移地址爲16位,變化範圍0~FFFFH,因此一個段的長度最大爲64KB

CPU可以用不同的段地址和偏移地址形成同一個物理地址

9、段寄存器(CS、DS、SS、ES)

10、CS和IP

代碼段寄存器(CS)、指令指針寄存器(IP)

8086中任意時刻,CPU 總是將CS:IP指向的內容當作指令執行

8086CPU工作過程:

1)從CS:IP指向內存單元讀取指令,放入指令緩衝器

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

3)執行指令。轉到1),重複。

11、修改CS、IP的指令

在CPU中程序員能夠用指令讀寫的部件只有寄存器

MOV指令——傳送指令,不能用於修改CS、IP的值

JMP指令——轉移指令(能夠修改CS:IP)

1)JMP 段地址:偏移地址

2)JMP 某一合法寄存器(僅修改IP)

12、代碼段

編程時,根據需要,將一組內存單元定義爲一個段

可以長度<=64KB的一組代碼存放在一組地址連續,起始地址爲16倍數的內存單元中


實驗 查看CPU、內存,用機器指令和彙編指令編程

Debug

R(查看、改變CPU寄存器的內容)

D(查看內存中的內容;d 段地址 :偏移地址,會顯示128B內容)

E(改寫內存中的內容)

U(查看內存中的機器碼的含義)

T(執行一條指令)

A(以彙編指令形式在內存中寫入機器指令)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章