引言

  • CPU可以直接读取3个地方的数据:

    • CPU内部的寄存器
    • 内存单元
    • 端口

      端口读写

  • 端口读写:in和out 用于端口读取与写入数据

  • in al,60h:从60h号端口读入一个字节
  • 执行时与总线相关的操作:

    • CPU通过地址线将地址信息60h发出
    • CPU通过控制线发出端口读命令,选中端口所在的芯片,并通知它,将要从中读取数据
    • 端口所在的芯片将60h端口中的数据通过数据线送入CPU

      CMOS RAM芯片

  • PC机中有一个CMOS RAM芯片:

    • 包含一个实时钟和一个有128个存储单元的RAM存储器。
    • 该芯片考电池供电。
    • 128字节的RAM,内部实时钟占用0~0dh单元来保存时间信息,其余大部分保存系统配置信息,供系统启动时BIOS程序读取。
  • 70h为地址端口,存放要访问的CMOS RAM单元的地址;71h为数据端口,存放从选定的CMOS RAM单元中读取的数据,或要写入到其中的数据。
  • CPU对CMOS RAM的读写分为两步:

    • 读CMOS RAM的2号单元
      • 将2送入端口70h
      • 从71h独处2号单元的内容

        shl和shr指令

  • shl和shr是逻辑一位指令

  • shl逻辑左移
  • shr逻辑右移
  • 例如:
    • mov al,01001000b
    • shl al,1
    • 执行后(al)=10010000b,cf=0
  • 如果移动位数大于1是,必须将移动位数放在cl中。