《汇编语言第三版》王爽著 ------读书笔记
在 PC机系统中,除了 CPU通过总线相连的芯片除各种 存储器外, 还有以下三种芯片
1)各种接口卡(比如,网卡,显卡)上述的接口芯片,它们控制接口卡进行工作;
2)主板上的接口芯片,CPU通过它们对部分外设进行访问;
3)其它芯片,用来存储相关的系统信息,或进行相关的输入输出处理
在这些芯片中,都有一组可以由CPU读写的寄存器,物理上可能处于不同的芯片中
在两点上相同:
1)都和CPU的总线相连,这种连接通过它们所在的芯片进行的;
2)CPU对它们 进行读或写的时候都通过控制线向它们所在的芯片发出端口读写命令
在CPU 的角度,将这些寄存器都当作端口,对它们进行统一编址,从而建立了一个统一的端口地址空间。每一个端口在地址空间中都有一个地址
CPU 可以直接读写以下3个地方的数据
1)CPU内部的寄存器
2)内存单元
3)端口
14.1 端口的读写
访问端口时,CPU通过 端口地址来定位 端口,因为端口所在芯片和 CPU通过总线相连,所以端口地址和内存地址一样,通过地址总线来传送。
则端口地址的范围 为 0~65535
端口的读写命令:
in
out
注:只能使用 ax 或 al 来存放从端口中读入的数据 或要发送到端口中的数据
访问8位端口 时用al,访问16位端口时用ax
对 0~255以内的端口进行读写时:
in al, 20h
out 20h,al
对 256~65535的端口进行读写时,端口号放在 dx中
in al,0defh
out dx,al
14.2 CMOS RAM 芯片
PC机中,有一个 CMOS RAM 芯片,一般简称为 CMOS,
特征如下:
1)包含一个实时针 和一个有 128个存储单元的RAM存储器(早期的计算机为64个字节)
2)该芯片靠电池供电,关机后其内部时钟仍可正常工作,RAM中的信息不丢失
3)128个字节的 RAM中,内部实时时钟 占用 0~0dh单元来保存时间信息,
其它大部分单元用于保存系统配置信息,供系统启动时BIOS程序读取。
BIOS 也提供了相关的程序,使我们可以在开机的时候配置CMOS RAM
中的系统信息
4)该芯片内有两个端口,端口地址为 70h 和 71h, CPU通过这两个端口来读写
CMOS RAM
5)70h为地址端口,71为数据端口 ,所以 CPU 对 CMOS RAM的读写分两步进行,比如,读CMOS RAM 的2号单元;
① 将 2送入端口 70h;
② 从端口 71h 读出 2 号 单元 的内容
14.3 shl 和 shr 指令
shl 和 shr 是 逻辑移位 指令,
shl是逻辑左移指令,功能:
- 将一个寄存器或内存单元中的数据向左移位
- 将移出的一位 写入 CF中;
- 最低位用0补充
若移为数大于1时:
将移动位数
将 X 逻辑 左移一位 相当于执行 X = X * 2
shr 与 shl 相反
14.4 CMOS RAM 中存储的时间信息
在 COMS RAM 中,存放着 当前的时间:年 月 日 时 分 秒
6个信息的长度都为1个字节,
存放单元为:
秒:0
分:2
时:4
日:7
月:8
年:9
这些数据以 BCD码的方式存放
BCD码:以4位二进制数表示十进制数码的编码方法
BCD码值 +30H = 十进制对应的 ASCll 码