、系统中一故障源存在瞬时故障和永久故障两种可能。当故障发生时,CPU响应中断请求转入中断服务程序。首先采用延时1秒的方法判断是哪种故障(调用自行编写的延时子程序DELAY,紧接着检查故障是否还在。在即永久故障,否则瞬时故障),若为瞬时故障不做任何处理直接返回,否则置FAULT字节单元为全1。故障源寄存器AL(用输入指令IN AL, 20H,其中20H为故障源端口地址)最高位(第7位)为故障记录位,该位为1表明故障发生。 要求编写完成上述故障判断的中断服务程序。

时间: 2024-02-05 16:11:45 浏览: 22
中断服务程序的代码如下: ``` ; 中断服务程序 INTERRUPT: CALL DELAY ; 延时1秒 IN AL, 20H ; 读取故障源寄存器AL AND AL, 80H ; 检查最高位是否为1 JZ RETURN ; 若最高位为0,表示瞬时故障,直接返回 MOV BYTE PTR FAULT, FFH ; 否则为永久故障,置FAULT字节单元为全1 OR AL, 80H ; 将最高位置为1,表示故障记录 OUT 20H, AL ; 将修改后的值写入故障源寄存器AL RETURN: IRET ; 中断服务程序结束,返回 ``` 说明: 1. 中断服务程序首先调用延时子程序 `DELAY`,延时1秒,等待故障持续时间,以便判断故障类型。 2. 然后使用输入指令 `IN AL, 20H` 读取故障源寄存器AL的值,检查最高位是否为1,如果为1,则表示永久故障,否则为瞬时故障。 3. 如果是瞬时故障,不做任何处理,直接返回。 4. 如果是永久故障,将FAULT字节单元置为全1,表示故障,同时将故障记录位设置为1,然后将修改后的值写入故障源寄存器AL。 5. 最后使用 `IRET` 指令结束中断服务程序,返回到原来的程序继续执行。
相关问题

系统中一故障源存在瞬时故障和永久故障两种可能。当故障发生时,CPU响应中断请求转入中断服务程序。首先采用延时1秒的方法判断是哪种故障(调用自行编写的延时子程序DELAY,紧接着检查故障是否还在。在即永久故障,否则瞬时故障),若为瞬时故障不做任何处理直接返回,否则置FAULT字节单元为全1。故障源寄存器AL(用输入指令IN AL, 20H,其中20H为故障源端口地址)最高位(第7位)为故障记录位,该位为1表明故障发生。 要求用emu8086编写完成上述故障判断的中断服务程序。

下面是用emu8086编写的故障判断的中断服务程序: ``` ;中断服务程序 INTERRUPT: PUSH AX ;保护现场 PUSH BX PUSH CX PUSH DX IN AL, 20H ;读取故障源寄存器AL的值 MOV BL, AL ;保存故障源寄存器AL的值 CALL DELAY ;调用延时子程序DELAY IN AL, 20H ;再次读取故障源寄存器AL的值 CMP BL, AL ;与之前保存的值进行比较 JNE FAULT ;若不相等,则是永久故障,跳转到FAULT处理 POP DX ;恢复现场 POP CX POP BX POP AX IRET ;返回中断 FAULT: MOV BYTE PTR FAULT, 0FFH ;置FAULT字节单元为全1 OR AL, 80H ;将故障记录位设为1 OUT 20H, AL ;将值写回故障源寄存器AL POP DX ;恢复现场 POP CX POP BX POP AX IRET ;返回中断 ``` 其中,DELAY为延时子程序,FAULT为故障标志的内存单元。在主程序中需要首先设置中断向量表,使得中断号为XX的中断请求转入INTERRUPT中断服务程序中。

使用8086汇编完成下面要求:系统中一故障源存在瞬时故障和永久故障两种可能。当故障发生时,CPU响应中断请求转入中断服务程序。首先采用延时1秒的方法判断是哪种故障(调用自行编写的延时子程序DELAY,紧接着检查故障是否还在。在即永久故障,否则瞬时故障),若为瞬时故障不做任何处理直接返回,否则置FAULT字节单元为全1。故障源寄存器AL(用输入指令IN AL, 20H,其中20H为故障源端口地址)最高位(第7位)为故障记录位,该位为1表明故障发生。

以下是使用8086汇编完成上述要求的代码: ``` ORG 100h ; 程序入口地址 DELAY PROC ; 延时子程序 MOV CX, 0FFFFh L1: LOOP L1 RET DELAY ENDP START: MOV AX, @DATA ; 初始化数据段寄存器 MOV DS, AX MOV AH, 0 ; 重置中断类型码 INT 21h ; 打印提示信息 MOV AL, 20h ; 从故障源端口读取故障源寄存器值 IN AL, AL AND AL, 80h ; 提取故障记录位 JZ NO_FAULT ; 如果故障记录位为0,表示没有故障,直接返回 CALL DELAY ; 延时1秒钟 MOV AL, 20h ; 再次从故障源端口读取故障源寄存器值 IN AL, AL AND AL, 80h ; 提取故障记录位 JZ TRANSIENT_FAULT ; 如果故障记录位为0,表示是瞬时故障,直接返回 MOV BYTE PTR FAULT, 0FFh ; 否则表示是永久故障,将FAULT字节单元置为全1 JMP END_PROGRAM NO_FAULT: RET ; 没有故障,直接返回 TRANSIENT_FAULT: RET ; 是瞬时故障,直接返回 END_PROGRAM: MOV AH, 4Ch ; 退出程序 INT 21h FAULT DB 0 ; 定义FAULT字节单元,用于记录故障类型 ``` 上述代码首先定义了一个延时子程序DELAY,用于实现1秒钟的延时。然后在程序入口处,将数据段寄存器DS初始化为数据段的起始地址,打印提示信息,从故障源端口读取故障源寄存器值,并提取出故障记录位。如果故障记录位为0,表示没有故障,直接返回。否则调用延时子程序延时1秒钟,再次从故障源端口读取故障源寄存器值,并提取出故障记录位。如果故障记录位为0,表示是瞬时故障,直接返回。否则表示是永久故障,将FAULT字节单元置为全1,并退出程序。最后定义了一个BYTE类型的变量FAULT,用于记录故障类型。

相关推荐

最新推荐

recommend-type

电源技术中的电压电流电量测量芯片CS5460A及其应用

CS5460A含有2个增益可编程放大器、2个△Σ调制器、2个高速滤波器,具有系统校准和有效值/功率计算功能,以提供瞬时电压/电流/功率数据采样及有功能量,IRMS,VRMS的周期计算结果。为适应低价测量CS5460A也能在...
recommend-type

Redis瞬时高并发秒杀方案总结

1.Redis 丰富的数据结构(Data Structures) 字符串(String)  Redis字符串能包含任意类型的数据;;  一个字符串类型的值最多能存储512M字节的内容;  利用INCR命令簇(INCR, DECR, INCRBY)来把字符串当作原子...
recommend-type

MatlabEMDHHTSVM-程序及图形.doc

MatlabEMDHHTSVM-程序及图形.doc  看到论坛里有人提出用SVM来解决EMD的边缘效应,觉得这个思路非常不错,我最近一直在学习这方面东西,但是目前还在搞前期工作,希望跟大家多多交流,互相交流自己的看法、思路和...
recommend-type

薄膜电容替代电解电容在DC-Link电容中的分析

因逆变器在从DC-Link得到有效值和峰值很高的脉冲电流的同时,会在DC-Link上产生很高的脉冲电压使得逆变器难以承受。所以需要选择DC-Link电容器来连接,一方面以吸收逆变器从DC-Link端的高脉冲电流,防止在DC-Link的...
recommend-type

软考-考生常见操作说明-202405101400-纯图版.pdf

软考官网--2024常见操作说明:包括如何绘制网络图、UML图、表格等 模拟作答系统是计算机技术与软件专业技术资格(水平)考试的电子化考试系统界面、作答过程的仿真系统,为各级别、各资格涉及输入和页面显示的部分题型提供体验性练习。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

解释minorization-maximization (MM) algorithm,并给出matlab代码编写的例子

Minorization-maximization (MM) algorithm是一种常用的优化算法,用于求解非凸问题或含有约束的优化问题。该算法的基本思想是通过构造一个凸下界函数来逼近原问题,然后通过求解凸下界函数的最优解来逼近原问题的最优解。具体步骤如下: 1. 初始化参数 $\theta_0$,设 $k=0$; 2. 构造一个凸下界函数 $Q(\theta|\theta_k)$,使其满足 $Q(\theta_k|\theta_k)=f(\theta_k)$; 3. 求解 $Q(\theta|\theta_k)$ 的最优值 $\theta_{k+1}=\arg\min_\theta Q(
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。