第14章 端口

CPU通过总线连接的,除了存储器外还包括3种芯片。

1、各种接口卡(网卡、显卡等)上的接口芯片。

2、主板上的接口芯片。

3、其他芯片。

在这里芯片中又存在由CPU进行读写的寄存器,它们有两点共性:

1、都和CPU总线连接。

2、通过控制总线发出读写命令。

CPU把这些寄存器看成端口,并对它们编址。

CPU可以直接对3个地方的数据进行直接读写,这其中就包括端口,这3个地方是:

1、CPU内部寄存器。

2、内存单元。

3、端口。

14.1端口的读写

CPU通过端口地址来定位端口,它最多可以定位216个端口。

对端口读写的命令只有IN和OUT指令。

IN:从端口读取数据。

OUT:向端口写入数据。

CPU访问内存和端口的方式大致相同,很简单没啥可说的,可参见P266所述。

IN和OUT只能使用AX和AL来存放从端口读入和向端口输出的数据。

14.2

CMOS RAM芯片

P266~P267简单地介绍了一下CMOS,其实没啥可看的。

CMOS是个芯片,其上有内存RAM,还有电池。正是因为有电池,电脑上的时钟才不会在关机的时候停,内存才能持久地保存着数据。

CMOS中的RAM中保存的是BIOS,所以可见BIOS并不是一个硬件,BIOS只不过是一个程序。所以我们平常说的设置BIOS(就是一开机按F2或者DEL进去的那个界面)也可以说成是设置CMOS。

14.3

SHL和SHR指令

都是逻辑位移指令。

SHL(Shift

Logical Left):逻辑左移。

SHR(Shift

Logical Right):逻辑右移。

SHL作用:将寄存器或内存单元中的数据向左移位,并将移出的最后一位写入CF(Carry Flag,进位寄存器),低位补0。

如果移动位数大于1,必须将移动位数存入CL(Count Low,计数寄存器)中。

SHR作用:将寄存器或内存单元中的数据向右移位,并将移出的最后一位写入CF(Carry Flag,进位寄存器),高位补0。

14.4

CMOS RAM中存储的时间信息

这个没什么好说的,值得一说的就是这个时间信息是用BCD码存储的。

所谓BCD码就是用4位2进制数字表示一个十进制数字的方法,也是16进制数字中从0~9的表示方法。

你可能感兴趣的:(第14章 端口)