汇编语言编写以下程序(1)系统的启动、停止由/INT1引脚连接的按键Kl控制,采用中断方式,下降沿触发。
时间: 2024-02-25 18:55:31 浏览: 14
以下是汇编语言编写的程序实现:
```
ORG 0 ;程序起始地址
START:
MOV AL, 00000010B ;设置/INT1引脚为下降沿触发
OUT 21H, AL ;将设置信息输出到中断控制器8259A的端口21H
MOV AH, 0 ;清空AH寄存器
CLI ;禁止中断
MOV AL, 10000000B ;将AL寄存器的值设为10000000B,即开启IRQ1中断
OUT 70H, AL ;向CMOS RAM的端口70H写入AL寄存器的值,开启IRQ1中断
STI ;开启中断
WAIT:
HLT ;等待中断事件
JMP WAIT ;跳转到WAIT标签处
INTERRUPT:
IN AL, 60H ;从键盘端口60H读取按键信息
CMP AL, 01H ;比较按键信息是否为Kl键的按下信号
JZ STOP ;如果是,则跳转到STOP标签处
JMP WAIT ;否则,继续等待中断事件
STOP:
MOV AH, 0 ;清空AH寄存器
CLI ;禁止中断
MOV AL, 00000000B ;将AL寄存器的值设为00000000B,即关闭IRQ1中断
OUT 70H, AL ;向CMOS RAM的端口70H写入AL寄存器的值,关闭IRQ1中断
STI ;开启中断
JMP WAIT ;跳转到WAIT标签处
```
该程序通过设置/INT1引脚为下降沿触发,开启IRQ1中断,并使用HLT指令等待中断事件。当按下Kl键时,中断服务程序会从键盘端口60H读取按键信息,并比较是否为Kl键的按下信号。如果是,则跳转到STOP标签处,关闭IRQ1中断并跳转到WAIT标签处等待下一次中断事件。如果不是,则继续等待中断事件。