天天看點

彙編學習--8086CPU基礎

CPU的主要部件是寄存器

寄存器是程式員能夠讀寫CPU的部件

程式員通過控制寄存器來控制CPU

8086CPU的寄存器大小為16位,以下的講解均以8086CPU為例。

其中,通用寄存器有4個,AX,BX,CX,DX。存放一般性資料。

對于AX,低8位也被稱為AL,高8位被稱為AH,可以分别用AL或者AH來讀寫低位和高位的内容,也可以直接使用AX來讀寫16位内的内容

由此引入了位元組和字的概念,字的大小為兩個位元組,也就是一個寄存器的大小。

8086CPU尋址方式如下:

彙編學習--8086CPU基礎

位址總線有20個,CPU通過兩個寄存器來存放位址總線的資料。擷取方式為:

實體位址 = 段位址 X 16 + 偏移位址。其中存儲段位址的寄存器為CS,存儲偏移位址寄存器為IP

每次在尋找位址之前,都需要進行位址的相加

是以,我們可以通過改變CS和IP寄存器中的資料,進而得到我們需要的位址,從這些位址中得到我們需要的資料或者指令

修改CS和IP的指令為jmp。可以使用jmp 段位址:偏移位址來修改。如jmp 1000:0123後,CS = 1000,IP = 0123(均為十六進制),實體位址為10123

Debug模式下檢視CPU和記憶體,以及修改彙編指令的常用操作有六個:

R:檢視和修改寄存器内容

D:檢視記憶體内容

E:修改記憶體内容

T:執行記憶體内容

A:以彙編的形式将指令寫入記憶體

U:将記憶體中的内容解釋為機器指令和彙編指令