CPU的主要部件是寄存器
寄存器是程式員能夠讀寫CPU的部件
程式員通過控制寄存器來控制CPU
8086CPU的寄存器大小為16位,以下的講解均以8086CPU為例。
其中,通用寄存器有4個,AX,BX,CX,DX。存放一般性資料。
對于AX,低8位也被稱為AL,高8位被稱為AH,可以分别用AL或者AH來讀寫低位和高位的内容,也可以直接使用AX來讀寫16位内的内容
由此引入了位元組和字的概念,字的大小為兩個位元組,也就是一個寄存器的大小。
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:将記憶體中的内容解釋為機器指令和彙編指令