第 14 章:端口
检测点 14.1
(1)编程,读取 CMOS RAM 的 2 号单元的内容。
assume cs:code
code segment
start:
mov al,2 ; (al)=2,2 号单元
out 70h,al ; 选中端口 70h 的 2 号单元
in al,71h ; 从端口 71h 读出 2 号单元,送入 al
mov ax,4c00h
int 21h
code ends
end start(2)编程,向 CMOS RAM 的 2 号单元写入 0 。
assume cs:code
code segment
start:
mov al,2 ; (al) = 2,2 号单元
out 70h,al ; 将 al 送入端口 70h,选中 2 号单元
mov al,0 ; (al) = 0,写入端口
out 71h,al ; 将 (al)=0 写入到 71h 的 2 号单元
mov ax,4c00h
int 21h
code ends
end start使用 debug 测试时。我们发现 in 和 out 指令都不支持单步中断。
检测点 14.2
编程,用加法和移位指令计算 (ax)=(ax)10。
提示,(ax)10=(ax)2+(ax)8 。
参考链接
汇编语言(王爽第三版)检测点14 - 筑基2017 - 博客园
实验 14 访问 CMOS RAM
编程,以“年/月/日 时:分:秒”的格式,显示当前的日期、时间。
注意:CMOS RAM 中存储着系统的配置信息,除了保存时间信息的单元外,不要向其他的单元中写入内容,否则将引起一些系统错误。

参考链接
汇编语言(王爽第三版)实验14 访问CMOS RAM - 筑基2017 - 博客园
Last updated