[汇编学习笔记][第十四章 端口]
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码低
相关文章推荐
- 各种问题解决转载贴
- C++杂谈(一)const限定符与const指针
- IIS中发布后出现Could not load file or assembly'System.Data.SQLite.dll' or one of its depedencies
- position:absolute绝对定位居中
- Linux学习笔记--df/du命令(查看磁盘空间命令)
- 指针运算
- bat批处理svn
- Python脚本实现自动发带图的微博
- kernel-000-bootsec.s
- Plug-in "net.sourceforge.jode" was unable to instantiate class "net.sourceforge.jode.JodeClassFileEd
- 根据手机号码获取归属地
- VS2013秘钥
- 软件外包还是自建团队
- MySQL常用解决方案
- Android 事件机制
- 【操作系统概论】——PV操作
- 修改输入框placeholder文字默认颜色-webkit-input-placeholder
- mysql if函数 concat 函数 和substring 函数
- 用ps制作篮球进框的gif动态图片
- laravel 5.2 form模块调用时出错