8086寄存器

8086 所有的寄存器都是16位的,可以存放兩個字節

通用寄存器

AX    可分爲  AH和AL 

BX    可分爲  BH和BL 

CX    可分爲  CH和CL 

DX    可分爲  DH和DL 

可以作爲兩個獨立使用的8位寄存器來用  AX的低8位構成AL寄存器,高8位構成AH寄存器   在寫一條彙編指令或者一個寄存器的名稱時不用區分大小寫

這4個寄存器用來存放一般性的數據,被稱爲通用寄存器


段寄存器

CS  DS       SS     ES


CS和IP是8086CPU 中最關鍵的寄存器,CS爲代碼段寄存器,IP爲指令指針寄存器,任意時刻,CPU將CS:IP指向的內容當作指令執行。執行過程如下:

1    從CS:IP指向的內存單元讀取指令,讀取的指令進入指令緩衝器。

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

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



如果內存中的一段信息曾被CPU執行過,那麼它所在的內存單元一定被CS:IP指向過

修改CS,IP內容:

JMP 2AE3:3

執行後 CS=2AE3,IP=0003H

CPU將從2AE33H處讀取指令

尋址方式


段地址×16 + 偏移地址 = 物理地址

(段地址×16)顯然是16的倍數,所以一個段的起始地址也一定是16的倍數,尋址能力爲64KB,所以一個段的長度最大爲64KB80


字單元:存放一個字型數據(16位)的內存單元,由兩個地址連續的內存單元組成。

CPU要讀寫一個內存單元的時候,必須先給出這個內存單元的地址(由段地址和偏移地址組成) 8086CPU自動讀取DS中的數據作爲內存單元的段地址


例如 將AL中的數據送入內存單元10000H中


MOV BX,10000H

MOV DS,BX

MOV [0],AL



ADD  寄存器,寄存器

ADD  寄存器,數據

ADD  寄存器,內存單元

ADD  內存,寄存器



棧操作  PUSH  POP

在8086的CPU中,又兩個寄存器,段寄存器SS和寄存器SP,棧頂的段地址存放在SS中,偏移地址存放在SP中,任意時刻,SS:SP指向棧頂元素



我們可以將一段長度爲N(N<=64KB)地址連續,起始地址爲16的倍數的內存單元當作專門存放數據的內存空間,從而定義了一個數據段

發佈了79 篇原創文章 · 獲贊 22 · 訪問量 17萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章