ITEEDU

1.6 寄存器

寄存器又分为内部寄存器与外部寄存器,所谓内部寄存器,其实也是一些小的存储单元,也能存储数据。但同存储器相比,寄存器又有自己独有的特点:

① 寄存器位于CPU内部,数量很少,仅十四个;
② 寄存器所能存储的数据不一定是8bit,有一些寄存器可以存储16bit数据,对于386/486处理器中的一些寄存器则能存储32bit数据;
③ 每个内部寄存器都有一个名字,而没有类似存储器的地址编号。

寄存器的功能十分重要,CPU对存储器中的数据进行处理时,往往先把数据取到内部寄存器中,而后再作处理。关于各个寄存器的具体问题后面会深入讨论。

外部寄存器是计算机中其它一些部件上用于暂存数据的寄存器,它与CPU之间通过"端口"交换数据,所以外部寄存器具有寄存器和内存储器双重特点。有些时候我们常把外部寄存器就称为"端口",这种说法不太严格,但经常这样说。

外部寄存器虽然也用于存放数据,但是它保存的数据具有特殊的用途。某些寄存器中各个位的0、1状态反映了外部设备的工作状态或方式;还有一些寄存器中的各个位可对外部设备进行控制;也有一些端口作为CPU同外部设备交换数据的通路。所以说,端口是CPU和外设间的联系桥梁。

CPU对端口的访问也是依据端口的"编号"(地址),这一点又和访问存储器一样。不过考虑到机器所联接的外设数量并不多,所以在设计机器的时候仅安排了1024个端口地址,端口地址范围为0--3FFH。图1-5反映了CPU、内存、端口和外设间的联系关系。

图1-5 CPU、内存、端口和外设的联接关系

本章结束语

我们说汇编语言是面向硬件的语言,其实汇编语言所真正面对的就是存储器、寄存器和端口。而它所完成的工作无非是在内存中保存数据,在寄存器中"加工"数据,通过端口传输数据或控制设备。这一特点随着后文对汇编语言更深入地探讨就会逐渐显露出来。

汇编语言中的每一条指令都会控制电脑完成一个细微的动作,这些细微的动作组合在一起就会产生一种宏观的效果。CPU的一举一动都在程序的精确控制之下完成。这样的能力可不是高级语言所能拥有的。这也正是汇编语言能够吸引人的地方。