端口的读写
端口的读写指令只有两条:in 和 out分别用于从端口读取数据和往端口写入数据。
在in和out指令中,只能使用ax或al来存放从端口中读入的数据或要发送到端口中的数据。访问8位端口时用al,访问16 位端口时用ax。
对256~65535的端口进行读写时,端口号放在dx中。
CMOS RAM 芯片
CMOS RAM芯片包含一个实时钟和一个有128个存储单元的RAM存储器。
该芯片靠电池供电。因此,关机后其内部的实时钟仍可正常工作, RAM 中的信息不丢失。
128个字节的RAM中,内部实时钟占用0~0dh单元来保存时间信息,其余大部分分单元用于保存系统配置信息,供系统启动时BIOS程序读取。
芯片内部有两个端口,70h为地址端口,存放要访问的CMOS RAM单元的地址;71h为数据端口,存放从选定的CMOS RAM单元中读取的数据,或要写入到其中的数据。
shl和shr指令
shl逻辑左移指令,功能为:
1.将一个寄存器或内存单元中的数据向左移位;
2.将最后移出的一位写入CF中;
3.最低位用0补充。
如果移动位数大于1时,必须将移动位数放在cl中。
CMOS RAM中存储的时间信息
CMOS RAM中,存放着当前时间:
CMOS RAM中的时间以BCD码的方式存放,一个字节可表示两个BCD码。
BCD 码值=十进制数码值,则BCD码值+30h=十进制数对应的ASCII码。
参考资料:《小甲鱼汇编零基础入门》
《汇编语言》第三版