各种存储器都和CPU的地址线、数据线、控制线相连。CPU在操控它们的时候,把它们都当作内存来对待,把它们总地看作一个由若干存储单元组成的逻辑存储器,这个逻辑存储器我们称其为内存地址空间.

PC机中,和CPU通过总线相连的芯片除各类存储器外还有:
1) 各类接口卡上的接口芯片:控制接口卡进行工作
2) 主板上的接口芯片:对部分外设进行访问
3) 其他芯片:存储相关的系统信息或进行相关的输入输出处理

上述芯片都有一组可被CPU读写的寄存器:
都和CPU总线相连
CPU对其进行读写通过控制线向它们所在芯片发出读写命令
CPU将这些寄存器当作端口,对它们统一编址。

CPU可以直接读写的数据来源

1) CPU内部的寄存器
2) 内存单元
3) 端口

端口的读写

在访问端口的时候,CPU通过端口地址来定位端口.在PC系统中,CPU最多可以定位64KB个不同的端口.则端口地址的范围为0~65535.

对端口的读写不能用mov , push , pop等内存读写指令.端口的读写指令只有两条, in 和 out ,分别用于从端口读取数据和往端口写入数据.

在in 和 out 指令中,只能使用ax或al来存放从端口中读入的数据线或要发送到端口中的数据.访问8位端口时用al,访问16位端口时用ax.

举例:
inal,20h
out 20h,al
in ax,28h







CMOS RAM芯片

CMOS芯片的特征:
包含一个实时钟和一个128个存储单元的RAM存储器
该芯片靠电池供电。
128个字节的RAM中,内部实时钟占用0~0dh单元来保存时间信息,其余单元保存系统配置信息,供系统启动时BIOS程序读取。
该芯片内部有两个端口,地址为70h和71h
70h为地址端口,存放要访问的CMOS RAM单元的地址;71h为数据端口,存放从选定的CMOS RAM单元中读取数据,或者写入到其中数据。

CPU对CMOS的读写:例如,读CMOS RAM的2号单元:
将2送入端口70h           
从71h读出2号单元的内容








逻辑移位指令shl和shr

shl:逻辑左移指令
格式:shl reg/mem,1/cl
功能:
将一个寄存器或内存单元中的数据向左移位
将最后移出的一位写入CF中
最低位用0补充
例如:
mov al,01001000b    mov al,01010001b
shl al,1               mov cl,3
shl al,cl

格式:shr reg/mem,1/cl
功能:
将一个寄存器或内存单元中的数据向右移位
将最后移出的一位写入CF中
最高位用0补充
例如:
mov al,10000001b    mov al,01010001b
shr al,1               mov cl,3
shr al,cl
将X逻辑左移一位,相当于执行X=X*2
将X逻辑右移一位,相当于执行X=X/2
  如果移动位数大于1时,必须将移动位数放在cl中

CMOS RAM中存储的时间信息

CMOS RAM中存放着当前的时间:年月日时分秒,每个信息的长度都为1字节,存放单元为:                
  秒:0  分:2  时:4  日:7  月:8  年:9
这些数据用BCD码来存放

BCD码是以4位二进制数表示十进制数码的编码方法

十进制数码:      0    1    2    3    4    5    6    7    8    9
对应的BCD码: 0000 0001 0010 0011 0100 0101 0111 0110 1000 1001
打赏