2.1通用寄存器

    8086CPU的所有寄存器都是16位的,可以存放兩個字節。AX、BX、CX、DX這4個寄存器通常用來存放一般性的數據,被稱爲通用寄存器

 

 以AX爲例,寄存器的邏輯結構如下圖:

    

16位寄存器的邏輯結構

 

    一個16位寄存器可以存儲一個16位的數據,數據在寄存器中的情況如下圖所示:

    

16位數據在寄存器中存放的情況

 

 想一想,一個16位的寄存器所能存儲的數據的最大值爲多少?

 

    8086CPU的上一代CPU中的寄存器都是8位,爲了保證兼容性,使原來基於上代CPU編寫的程序稍加修改就可以運行在8086之上。8086CPU的AX、BX、CX、DX這4個寄存器都可分爲兩個獨立使用8位寄存器來用:

    (1)AX可分爲AH和AL

    (2)BX可分爲BH和BL;

    (3)CX可分爲CH和CL;

    (4)DX可分爲DH和DL。

 

    數據:18

    二進制表示10010

    在寄存器AX中的存儲:

    

 

    數據:20000

    二進制表示100111000100000

    在寄存器AX中的存儲:

    

 

    以AX爲例,8086CPU的16位寄存器分爲兩個8位寄存器的情況如下圖:


16位寄存器分爲兩個8位寄存器

 

    AX的低8位0位~7位)構成了AL寄存器8位8位~15位)構成了AH寄存器AH和AL寄存器是可以獨立使用8位寄存器。下圖展示了16位寄存器及它所分成的兩個8位寄存器的數據存放的情況:


16位寄存器及所分成的兩個8位寄存器的數據存儲情況

 

    想一想,一個8位寄存器所能存儲的數據的最大值爲多少?

 

    問:一個16位寄存器所能存儲的數據的最大值爲多少?

 答:2^16=65536  準確來說是65535,因爲0~65536,總共是65536。

 

 問:一個8位寄存器所能存儲的數據的最大值爲多少?

 答:2^8=256  準確來說是255,因爲0~255,總共是256。

 

 問:爲什麼一個16位的寄存器要分爲兩個8位寄存器?

 答:因爲,爲了兼容上代CPU編寫的程序,稍加修改就可以運行。

 

 問:爲什麼AX寄存器,要分爲低8位和高8位?

 答:這個與設計者的命名有關。一個16位寄存器分爲兩個8位寄存器,第一個8位寄存器,你可以叫做X8位寄存器。第二個8位寄存器,你可以叫做Y8位寄存器。簡單地說,你可以任意命名。

 

 問:爲什麼AX、BX、CX、DX只能存放一般性的數據?

    答:在你的辦公抽屜裏。一般有重要的文件和不重要的文件,以及其他的文件。

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