2.1通用寄存器

    xiaoxiao2021-03-25  91

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

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

    转载请注明原文地址: https://ju.6miu.com/read-23621.html

    最新回复(0)