当前位置: 首页 > wzjs >正文

江西网站开发软件公司苏州百度关键词优化

江西网站开发软件公司,苏州百度关键词优化,动漫网站建设意义,哈尔滨建设网站公司哪家好一、实验目的 掌握中断服务程序的编写。 二、实验电路 三、实验内容 1.实验用PC机内部的中断控制器8259A,中断源用TPC-ZK实验箱上的单脉冲电路,将单脉冲电路的输出接中断请求信号IRQ,每按一次单脉冲按键产生一次…

一、实验目的               

掌握中断服务程序的编写。

二、实验电路

三、实验内容

1.实验用PC机内部的中断控制器8259A,中断源用TPC-ZK实验箱上的单脉冲电路,将单脉冲电路的输出接中断请求信号IRQ,每按一次单脉冲按键产生一次中断请求。

2.编写程序,要求每次主机响应外中断IRQ时,显示"THIS IS A 8259A INTERRUPT !",在键盘上敲任意一个键,程序退出。

四、编程提示

1.本实验用TPC-ZK实验系统的USB接口,USB接口实验箱固定接到了PC机主片中断控制器8259的IRQ3上,即进行中断实验时,所用中断类型号为0BH,编程时要根据0BH中断类型号设置中断矢量。

2. PC机主片中断控制器8259的地址为20H、21H。主片8259中断屏蔽寄存器IMR对应位(IRQ3)要清零(允许中断):

IN AL,21H

AND AL,11110111B

OUT 21H,AL

中断服务结束前要使用中断结束命令:

MOV AL,20H

OUT 20H,AL

中断结束返回DOS时将IMR对应位置1,屏蔽中断。

IN AL,21H

OR AL,08H

OUT 21H,AL

五、实验程序(必须加注释)和结果

IRO_MASK EQU 11110111B ; 中断屏蔽码,二进制表示为11110111,用于设置8259A中断控制器的中断屏蔽寄存器

DATAS SEGMENT

    MS1 DB 0DH,0AH,'THIS IS A 8259A INTERRUPT!',0DH,0AH,'$' ; 定义字符串,用于显示中断信息

    MS2 DB 0DH,0AH,'PRESS ANY KEY TO EXIT!',0DH,0AH,'$' ; 定义字符串,用于提示用户按任意键退出

    MS3 DB 0DH,0AH,'guozhihong2022900624 AND mingruizhao2022900625',0DH,0AH,'$' ; 定义字符串,可能是作者信息

    CSREG DW? ; 用于存储旧的中断向量段地址

    IPREG DW? ; 用于存储旧的中断向量偏移地址

DATAS ENDS

STACKS SEGMENT

    ; 此处输入堆栈段代码

STACKS ENDS

CODES SEGMENT

    ASSUME CS:CODES,DS:DATAS,SS:STACKS

START:

    MOV ax,DATAS

    MOV ds,AX

   

    MOV dx,OFFSET MS3

    MOV ah,09H

    INT 21H ; 显示作者信息

   

    MOV DX,OFFSET MS1

    MOV ah,09H

    INT 21H ; 显示中断信息

   

    CLI ; 关中断,禁止其他中断发生

    MOV ax,350bh

    INT 21h ; 获取旧的中断向量

    MOV ax,es

    MOV CSREG,ax ; 存储旧的中断向量段地址

    MOV IPREG,bx ; 存储旧的中断向量偏移地址

    MOV ax,cs

    mov ds,ax

    MOV dx,offset INT_PROC

    MOV ax,250bh

    INT 21h ; 设置新的中断向量

    IN al,21h

    AND al,11110111b

    OUT 21h,al ; 设置8259A中断控制器的中断屏蔽寄存器

    MOV dx,offset MS2

    MOV ah,09h

    INT 21h ; 显示提示信息

    STI ; 开中断,允许其他中断发生

AG:

    MOV ah,1

    INT 16h

    JZ AG ; 等待用户按键

EXIT:

    CLI ; 关中断

    MOV dx,IPREG

    MOV ax,CSREG

    MOV ds,ax

    MOV ax,250bh

    INT 21h ; 恢复旧的中断向量

    IN al,21h

    or al,00001000b

    OUT 21h,al ; 恢复8259A中断控制器的中断屏蔽寄存器

    MOV ax,4c00h

    INT 21h ; 程序结束,返回操作系统

INT_PROC PROC

    PUSH ax

    PUSH dx

    PUSH ds

    MOV ax,DATAS

    MOV ds,ax

    MOV dx,offset MS1

    MOV ah,09h

    INT 21h ; 显示中断信息

    MOV al,20h

    OUT 20h,al ; 发送中断结束命令给8259A中断控制器

    POP ds

    POP dx

    POP ax

    IRET ; 中断返回

INT_PROC ENDP

CODES ENDS

END START

代码注释说明

IRO_MASK EQU 11110111B:定义了一个常量,用于设置8259A中断控制器的中断屏蔽寄存器。

DATAS SEGMENT:定义了数据段,包含了要显示的字符串和用于存储旧中断向量的变量。

STACKS SEGMENT:定义了堆栈段,但代码中没有具体内容。

CODES SEGMENT:定义了代码段,包含了程序的主要逻辑。

START:程序的入口点,包含了初始化和中断处理的代码。

INT_PROC PROC:定义了中断处理程序,用于处理8259A中断控制器产生的中断。

CODES ENDS:代码段结束。

END START:程序结束。

代码执行流程

程序开始,显示作者信息。

显示中断信息。

保存旧的中断向量。

设置新的中断向量,指向自定义的中断处理程序。

设置8259A中断控制器的中断屏蔽寄存器。

显示提示信息,等待用户按键。

用户按键后,恢复旧的中断向量。

恢复8259A中断控制器的中断屏蔽寄存器。

程序结束,返回操作系统。

代码中的关键操作

CLI和STI:用于关闭和开启中断。

INT 21H:用于调用DOS系统功能,如显示字符串和获取/设置中断向量。

IN和OUT:用于与8259A中断控制器进行数据传输。

PUSH和POP:用于保存和恢复寄存器的值。

IRET:用于从中断处理程序返回。

代码中的数据结构和变量

MS1、MS2和MS3:用于存储要显示的字符串。

CSREG和IPREG:用于存储旧的中断向量段地址和偏移地址。

代码中的函数和子程序

INT_PROC:中断处理程序,用于处理8259A中断控制器产生的中断。

代码中的输入输出操作

MOV dx,OFFSET MS1和MOV ah,09H:用于显示字符串。

IN al,21h和OUT 21h,al:用于与8259A中断控制器进行数据传输。

代码中的条件判断和循环结构

JZ AG:用于等待用户按键。

代码中的异常处理

代码中没有显式的异常处理逻辑,但通过中断处理程序可以处理8259A中断控制器产生的中断。

IRQ

二、实验电路

http://www.dtcms.com/wzjs/154441.html

相关文章:

  • 天河网站建设专家windows优化软件哪个好
  • 建站优化推广网站设计用什么软件
  • 网站建设四个阶段的流程网上怎么推广产品
  • 住小帮装修案例北京网站seo费用
  • 网站建设标准合同引流app推广软件
  • 如何找到外包推广公司关键词优化如何
  • 网站独立物流系统上海seo推广平台
  • 上海企业建站步骤注册推广
  • 坚持网站机制建设深圳最新疫情
  • 长沙口碑好网站建设公司百度手机助手下载
  • 做网站建设怎么介绍自己徐汇网站建设
  • 找不到自己做的dw网站线上营销推广方案
  • 网站建设谈客户说什么舆情网站
  • 企业展示网站建设百度首页排名代发
  • 在火炉做网站公园坐什么车怎样做市场营销策划
  • 机械设备 东莞网站建设销售系统
  • wordpress分类更改seo免费优化网址软件
  • 家用电脑可以做网站吗国际域名注册网站
  • 商务型企业网站建设百度知道合伙人答题兼职
  • 青山湖南昌网站建设长春网站建设技术托管
  • 网页设计与网站建设是干嘛的哪些平台可以打小广告
  • 网站如何做电脑和手机软件第三方营销平台有哪些
  • 房产网签备案查询长沙seo推广优化
  • 外贸电商网站开发价格太原做推广营销
  • 做网站软件A开头的最新黑帽seo教程
  • 公司网站的重要性高质量发展服务业
  • 电子商务网站首页sem竞价专员是干什么的
  • 企业大型网站开发设计建站流程优秀的软文广告欣赏
  • 菏泽网站建设公司排名今日新闻快讯10条
  • 杭州公司注册地址挂靠上海高玩seo