【笔记】【汇编语言】第14章 端口

14.0 概述
  PC机系统中,和CPU通过总线相连的芯片除了各种存储器外,还有以下3种芯片:
  (1) 各种接口卡(如网卡,显卡)上的的接口芯片,它们控制接口卡进行工作
  (2) 主板上的接口芯片,CPU通过他们对部分外设进行访问
  (3) 其他芯片,用来存储相关的系统信息,或进行相关的输入输出处理
  在这些芯片中,都有CPU可以读写的寄存器,虽然它们位于不同的芯片中,但有以下的共同点
  (1) 与CPU的总线相连,当然这是通过他们所在的芯片进行的
  (2) CPU对它们的读写是通过控制线向它们所在的芯片发出端口读写命令
  从CPU的角度,将这些寄存器当作端口,每个端口在内存地址空间中有一个地址.
  CPU可直接读写下面3个地方的数据:
  (1) CPU内部的寄存器
  (2) 内存单元
  (3) 端口(外部寄存器)
 
14.1 端口的读写
  对端口的读写不能使用mov,push,pop等内存读写指令,只能使用in和out.
  使用in和out时,只能使用ax或al来存放要写入端口或从端口读取的数据.
  对0~255以内的端口进行读写时:
  in al,20h
  out 20h,al
  对256~65535的端口进行读写时,端口号放在dx中:
  mov dx,369h
  in al,dx
  out dx,dl
 
14.2 CMOS RAM芯片
  特征:
  (1) 包含一个实时钟和一个128Byte的的RAM存储器(早期为64Byte)
  (2) 靠电池供电,关机后内部实时钟仍可正常工作,RAM信息不丢失
  (3) RAM中,内部实时钟占用0~0dh存储时间信息,其余大部分用于保存系统配置信息,供系统启动时BIOS程序读取.BIOS也提供了相关程序使我们在开机时可配置CMOS信息.
  (4) 该芯片有两个端口,70h和71h,70h为地址端口,71h为数据端口,CPU对CMOS RAM的读写分两步,将地址写入70h端口,从71h端口读取或写入数据.
 
14.3 shl和shr命令
  1) shl,逻辑左移指令:
  (1) 将一个寄存器或内存单元中的数据向左移位;
  (2) 将最后移出的一位写入CF中
  (3) 最低位用0补充
  如: mov al,01001000b
      shl al,1 ;左移1位
  结果:(al)=10010000b , CF=0
  如果移动位数大于1时,必须将位数存在cl中
  如: mov al,01001000b
      mov cl,3
      shl al,cl
      
  2) shr,逻辑右移指令:
  (1) 将一个寄存器或内存单元中的数据向右移位;
  (2) 将最后移出的一位写入CF中
  (3) 最高位用0补充

14.4 CMOS RAM中存储的时间信息
  BCD码:以4位二进制数表示十进制数码的编码方法.
  在CMOS RAM中,存放年,月,日,时,分,秒的信息,分别是一个字节,用BCD码存放,高4位表示十位数,低4位表示个位数,存放单元为
  秒:0 分:2 时:4 日:7 月:8 年:9
  >>>>注:BCD码值=十进制数据码值,则BCD码值加上30h,即是数码值的ASCII编码值.<<<<
 
实验14 访问CMOS RAM
  略

posted @ 2012-08-06 12:21  Azik  阅读(296)  评论(0编辑  收藏  举报