CPU通过总线连接的,除了存储器外还包括3种芯片。
1、各种接口卡(网卡、显卡等)上的接口芯片。
2、主板上的接口芯片。
3、其他芯片。
在这里芯片中又存在由CPU进行读写的寄存器,它们有两点共性:
1、都和CPU总线连接。
2、通过控制总线发出读写命令。
CPU把这些寄存器看成端口,并对它们编址。
CPU可以直接对3个地方的数据进行直接读写,这其中就包括端口,这3个地方是:
1、CPU内部寄存器。
2、内存单元。
3、端口。
CPU通过端口地址来定位端口,它最多可以定位216个端口。
对端口读写的命令只有IN和OUT指令。
IN:从端口读取数据。
OUT:向端口写入数据。
CPU访问内存和端口的方式大致相同,很简单没啥可说的,可参见P266所述。
IN和OUT只能使用AX和AL来存放从端口读入和向端口输出的数据。
P266~P267简单地介绍了一下CMOS,其实没啥可看的。
CMOS是个芯片,其上有内存RAM,还有电池。正是因为有电池,电脑上的时钟才不会在关机的时候停,内存才能持久地保存着数据。
CMOS中的RAM中保存的是BIOS,所以可见BIOS并不是一个硬件,BIOS只不过是一个程序。所以我们平常说的设置BIOS(就是一开机按F2或者DEL进去的那个界面)也可以说成是设置CMOS。
都是逻辑位移指令。
SHL(Shift
Logical Left):逻辑左移。
SHR(Shift
Logical Right):逻辑右移。
SHL作用:将寄存器或内存单元中的数据向左移位,并将移出的最后一位写入CF(Carry Flag,进位寄存器),低位补0。
如果移动位数大于1,必须将移动位数存入CL(Count Low,计数寄存器)中。
SHR作用:将寄存器或内存单元中的数据向右移位,并将移出的最后一位写入CF(Carry Flag,进位寄存器),高位补0。
这个没什么好说的,值得一说的就是这个时间信息是用BCD码存储的。
所谓BCD码就是用4位2进制数字表示一个十进制数字的方法,也是16进制数字中从0~9的表示方法。