Skip to content

Latest commit

 

History

History
60 lines (43 loc) · 2.02 KB

File metadata and controls

60 lines (43 loc) · 2.02 KB

第十四章:端口

要点

  • CPU 可以直接读写以下 3 个地方的数据
    • CPU 内部的寄存器
    • 内存单元
    • 端口
  • 8086 CPU 最多可以定位 64KB 个不同的端口。端口的范围为 0~65535 对端口的读写不能使用 mov、push、pop 等内存读写指令。端口的读写指令只有两条 in 和 out,分别用于从端口读取数据和往端口写入数据
  • 在 in 和 out 指令中只能使用 ax 或 al 来存放从端口读入的数据或者要发送到端口中的数据
    • 对于 0~255 内的端口读写可以直接使用常量指定
      • in al,20h
      • out 20h,al
    • 对于 256~65535 的端口进行读写时,端口号放在 dx 中
      • mov dx, 3f8h
      • in al,dx
      • out dx,al
  • shl 和 shr 指令
    • shl 是逻辑左移指令,它的功能为:
      • 将一个寄存器或内存单元中的数据向左移位
      • 将最后移出的一位写入 CF 中
      • 最低位用 0 补充
      • 如果移动位数大于 1 时,必须将移动位数放在 cl 中
      • 例子: shl al,1
    • shr 是逻辑右移指令
      • 将一个寄存器或内存单元中的数据向右移位
      • 将最后移出的意味写入 CF 中
      • 最高位用 0 补充
      • 如果移动位数大于 1 时,必须将移动位数放在 cl 中

检测点 14.1

  1. 编程,读取 CMOS RAM 的 2 号单元的内容

实现程序

  1. 编程,向 CMOS RAM 的 2 号单元写入 0

实现程序

检测点 14.2

编程,用加法和移位指令计算 (ax)=(ax)*10

提示:(ax)*10=(ax)*2+(ax)*8

程序

CMOS RAM 中存储的时间信息

程序

实验 14 访问 CMOS RAM

编程,以 “年/月/日 时:分:秒” 的格式,显示当前的日期、时间。

注意:CMOS RAM 中存储着系统的配置信息,除了保存时间信息的单元外,不要向其他的单元中写入内存,否则将引起一些系统错误。

程序