您的位置:首页 > 其它

[汇编学习笔记][第十四章 端口]

2016-04-27 11:46 260 查看

第十四章 端口

和CPU相连的芯片,除了各种储存器外,还有一下三种芯片。

各种接口卡(网卡,显卡)上的接口芯片,他们控制接口卡进行工作。

主板上的接口芯片,CPU通过它们对部分外设进行访问。

其他芯片,用来存储相关的系统信息,或进行相关的输入输出处理。

CPU可以直接读写一下三个地方数据

CPU内部的寄存器

内存单元

端口

14.1 端口的读写

CPU最多可以定位64KB个不同的端口

端口的读写只能用
in
out
两条命令

访问端口

in al,60h //从60h号端口读入一个字节


in
out
指令中只能用al或ax读或写入端口。

对256~65535端口进行读写时,端口号要放在
dx


mov dx,3f8h
in al,dx
out dx,al


14.2 CMOS RAM 芯片

PC机中,有一个
CMOS RAM
芯片,一般简称为CMOS,该芯片有如下特征。

包含一个实时钟和一个有128个存储单元的RAM存储器

该芯片靠电池 供电,所以关机后其内部的实时钟仍可工作,RAM信息不丢失。

128个字节RAM中,内部实时钟占用0~0dh单元保存时间信息, 其余大部分单元用于保存系统配置信息,供系统启动时BIOS程序读取,BIOS也提供了相关的程序,使我们在开机的时候配置CMOS RAM的系统信息。

该芯片由两个端口,端口地址为
70h
,和
71h
。CPU通过这两个端口来读写CMOS RAM

70h
地址端口,存放要访问的CMOS RAM单元的地址;
71h
数据端口,存放从特定的CMOS RAM单元中读取的数据,或要写入其中的数据。可见,CPU对CMOS RAM的读写分两步进行,比如,读CMOS RAM的2号单元

- 将2送入端口地址70h
- 从端口71h读出2号单元的内容


14.3 shl和shr指令

shl al,1

如果移动位数大于1,必须将移动位数放在
cl


14.4 CMOS ROM中存储的时间信息

在CMOS ROM中,存放着当前的时间,这6个信息长度都为一个字节。

存放单元

秒:0

分:2

时:4

日:7

月:8

年:9

且这些数据都以BCD码存储

问:如何在屏幕显示月份信息

从CMOS RAM的8号单元读出当前月份的BCD码

mov al,8
out 70h,al
in al 71h


BCD码表示的月份以十进制的形式显示到屏幕上

BCD码值+30h=十进制对应的ASCLL码低
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: