题目:使用 8253/4 的计数器 0 和计数器 1 级连,采用定时方式工作,周期性的点亮及熄灭发光二极管各 2 秒 (周期为 4 s)
思路:
首先根据题目要求写入控制字,再将控制字写入到AL当中。
由于此试验箱的计数器0,计数器1以及控制端口的地址分别是200H、201H,203H,所以需要使用MOV指令将控制端口地址送入到DX寄存器当中。
通过使用OUT指令,将控制字写入到方式控制端。再使用MOV指令将通道0的端口地址写入到DX当中,同时将0移入到AL当中。
由于题目要求设定循环次数10000次,所以需要两次OUT指令,分别高八位低八位写入到计数器0的端口地址当中。
题目需要用级联对小灯泡进行控制,计数器1同计数器0,先将控制字写入到控制端口,由于计数器1设定计数初值为4,所以只需要一次写入到端口地址当中即可。
.MODEL SMALL .486 DATA SEGMENT IO_ADDRESS EQU 200H D1 DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: ;计数器0 MOV AX,DATA MOV DS,AX MOV AL,37H;控制字为00110111 MOV DX,203H;控制端口地址送到DX OUT DX,AL;写入方式控制端 MOV AL,0;循环次数为10000 MOV DX,200H;通道0端口地址为200H十六位,先移入到DX当中 OUT DX,AL;低八位写入计数器0的端口地址 OUT DX,AL;高八位写入计数器0的端口地址 ;计数器1 MOV AL,56H;控制字为01010110 MOV DX,203H;控制端口地址送到DX OUT DX,AL;写入方式控制端 MOV AL,4;计数初值为4 MOV DX,201H;通道一端口地址为201H OUT DX,AL;将计数初值写入计数器1的端口地址 HLT CODE ENDS END START