1. 程式人生 > >匯編語言第二章--寄存器

匯編語言第二章--寄存器

span 段地址 了解 結構 數據 電路 byte 存儲 個數

本周我們學習了第二章寄存器,從第一章的了解中我知道了CPU是電腦中最為核心的部分。對於我們來說,CPU中的主要部件是寄存器,不同的CPU,寄存器的個數,結構是不同的。8086CPU的所有寄存器都是16位的,可以存放兩個字節。AX可以分為AH和AL,BX可以分為BH和BL,以此類推。處於兼容性的考慮,8086CPU可以一次性處理以下兩種尺寸數據:字節記為byte,字記為word。為了區分不同的進制,在16進制表示的數據後面加上H,在二進制表示的數據後面加B,十進制的數據後面什麽也不加。

當8086CPU想要讀寫內存的時候:

(1)CPU中的相關部件提供兩個16位的地址,一個稱為段地址,一個稱為偏移地址。

(2)段地址和偏移地址通過內部總線送入地址加法器。

(3)地址加法器將兩個16位地址合成為一個20位的物理地址。

(4)地址加法器通過內部總線將20位物理地址送入輸入輸出控制電路。

(5)輸入輸出控制電路將20位物理地址送上地址總線。

(6)20位物理地址被地址總線傳送到存儲器。

在這個裏面,地址加法器采用物理地址=段地址*16+偏移地址的方法將其合成為物理地址。

CS和IP是8086CPU中兩個最關鍵的寄存器,他們指示了CPU當前要讀取指令的地址。CS為代碼段寄存器,IP為指令指針寄存器。在任意時刻,CPU將CS:IP指向的內容當作指令執行。

我們可以修改 CS、IP的指令:轉移指令:能夠改變CS、IP的內容的指令,若想同時修改CS、IP的內容,可用jmp 段地址:偏移地址,它的功能是用指令中給出的段地址修改CS,偏移地址修改IP

匯編語言第二章--寄存器