zoukankan      html  css  js  c++  java
  • 【笔记】【汇编语言】第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
      略

  • 相关阅读:
    安全体系(一)—— DES算法详解
    Windows下将gvim8配置为Python IDE
    SSH原理记录
    Spring Cloud 注册中心Eureka
    Spring Cloud 声明式服务调用 Feign
    Spring Cloud 客服端负载均衡 Ribbon
    Http服务器实现文件上传与下载(四)
    1.项目优化
    分支的创建与代码的推送——提交用户列表功能代码
    主页Header布局
  • 原文地址:https://www.cnblogs.com/AzikPhil/p/note_asm2_14.html
Copyright © 2011-2022 走看看