一个典型的CPU由运算器、控制器、寄存器等器件构成,这些器件靠内部总线相连。内部总线实现CPU内部各个器件之间的联系,外部总线实现CPU和主板上其他器件的联系。简单地说,在CPU中:
1.运算器进行信息处理。
2.寄存器进行信息存储。
3.控制器控制各种器件进行工作。
4.内部总线连接各种器件,在他们之间进行数据的传送。
不同的CPU当中寄存器的个数,结构是不相同的。
8086CPU有14个寄存器,分别是AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW
。
一、通用寄存器
8086CPU的所有寄存器都是16位的,可以存放两个字节。
AX,BX,CX,DX这4个寄存器通常用来存放一般性的数据,称为通用寄存器。由于8086CPU的上一代CPU中的寄存器都是8位的,为了保证兼容,使得原来基于上代CPU编写的程序稍加修改就可以运行在8086之上,8086CPU的AX,BX,CX,DX这4个寄存器都可以分为两个独立使用的8位寄存器来使用。
例如:AX可分为AH和AL,低八位(0位-7位)构成了AL寄存器,高八位(8位-15位)构成了AH寄存器。其他三个通用寄存器也是如此。
二、字在寄存器中的存储
出于兼容性考虑,8086CPU可以一次性处理两种尺寸的数据:
1.字节;
2.字:记为word,一个字由两个字节组成,这两个字节分别为高位字节和低位字节。
AH和AL中的数据既可以看作一个字型数据的高8位和低8位,也可以看成是两个独立的字节型数据。
三、几条简单汇编指令
通过汇编指令控制CPU进行工作。
1.mov ax,18 意为:将18送入寄存器AX;
2.mov ah,78 意为:将78送入寄存器AH;
3.add ax,8 意为:将寄存器AX中的数值加8;
4.mov ax,bx 意为:将寄存器BX中的数据送入寄存器AX;
5.add ax,bx 意为:将寄存器BX中的数据与AX中的数据相加,并存入AX中;
注意:
1.在写一个汇编指令或一个寄存器的名称时不区分大小写。
2.当指令执行之后寄存器中的值溢出时,其溢出部分丢失(丢失指的是进位制不能在8位或者16位寄存器中保存,但是CPU并不真的丢弃这个进位值)。
3.将一个16位通用寄存器当作两个8位寄存器使用时,认为二者不相关,即低位寄存器中的数据运算产生的进位并不会存储到高位寄存器中。
4.在进行数据传送或者指令运算时,要注意指令的两个操作对象的位数应当是一致的。
四、16位结构的CPU
概括地讲,16位结构描述了一个CPU具有以下几方面的结构特性: