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只能存放一般性的数据?

    答:在你的办公抽屉里。一般有重要的文件和不重要的文件,以及其他的文件。

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