????????运算器进行信息处理;寄存器进行信息存储;控制器控制各种器件进行工作;内部总线连接内部各种器件,在它们之间进行信息传输。
????????不同的CPU,寄存器的个数、结构是不相同的。8086CPU有14个寄存器,每个寄存器有一个名称。这些寄存器是:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、 DS、 ES、 PSW。8086 CPU 的所有寄存器都是16位,即两个字(一个字为两个字节),通用寄存器有AX、BX、CX、DX。
? ? ? ? 每一种通用寄存器都分为高位和地位,是为了兼容老式8位寄存器,AX的高位(AH), 低位(AL)。
mov ax, 18
mov ah, 78
add ax, 8
mov ax, bx
add ax, bx
mov ax, 4E20
add ax, 1406
mov 是赋值运算, add 是加法运算, 二者都是从后往前计算。
ah, al 是两个不相干的存储器,当 al 产生进位时,进位不会更新到 ah。、
????????我们知道,CPU访问内存单元时,要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间,每一个内存单元在这个空间中都有唯一的地址,我们将这个唯一的地址称为物理地址。
运算器一次最多处理16位的数据、寄存器的最大宽度为16位、寄存器运算器之间的通路为16位。
????????8086CPU 有20位地址总线, 可以传送20位地址,达到1MB寻址能力。所以8086CPU 采用一种在内部用两个6位地址合成的方法来形成一个20位地址。
地址加法器采用物理地址 = 段地址 * 16 + 偏移地址的方法来描述物理地址。
段地址 * 16 又称为起始地址。
????????8086CPU 有四个段寄存器,CS,SS, ES 和 DS, 它们负责向CPU提供内存单元的段地址,同偏移地址一起汇入地址加法器,形成内存单元的物理地址。?
? ? ? ? CS 是段寄存器, IP 是指令指针寄存器, 负责提供偏移地址, 这两个寄存器是8086CPU中最关键的两个寄存器。在8086CPU中, 任何时刻, 设 CS 为 M, IP 为 N, 8086CPU 将从内存地址M*16 + N开始读取一条条指令并且执行。