找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1310|回复: 0
收起左侧

基于8086的中断实验汇编程序与Proteus仿真图

[复制链接]
ID:567008 发表于 2022-4-30 11:31 | 显示全部楼层 |阅读模式
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.gif 83bfb0d8c83391e0f198a35972b9912b.png

实验内容
1.实现子程序和中断服务子程序的设计;
2.编写子程序设置40H中断为自定义中断服务子程序;
3.编写中断服务子程序实现AX=AX+BX;
4.编写主程序调用子程序和中断。

二.程序流程
51hei.png

8086汇编语言源程序如下:
  1. LED_IO  EQU 8000H       ;LED端口地址

  2. CS8259A EQU 9000H       ;8259地址
  3. CS8259B EQU 9002H
  4.    
  5. ICW1    EQU 00010011B   ;单片8259,上升沿中断,要写ICW4
  6. ICW2    EQU 00100000B   ;中断号为20H
  7. ICW4    EQU 00000001B   ;工作在8086/88方式
  8. OCW1    EQU 00000000B   ;只响应IR0中断

  9. CODE SEGMENT
  10.     ASSUME CS:CODE,DS:DATA
  11.         
  12. ORG 00H
  13.     JMP INTSERV
  14.    
  15. ORG 100H

  16. START:
  17.     MOV AX,DATA
  18.     MOV DS,AX
  19.    
  20.     CLI             ;关闭CPU可屏蔽中断

  21.     MOV AX,0
  22.     MOV ES,AX
  23.     MOV BX,20H*4      ;中断号为20H的中断向量入口
  24.    
  25.     MOV AX,OFFSET INTSERV   ;中断入口地址偏移地址
  26.     MOV WORD PTR ES:[BX],AX
  27.     MOV AX,SEG INTSERV      ;中断入口地址段地址
  28.     MOV WORD PTR ES:[BX+2],AX

  29.     CALL INTSET     ;调用设置中断工作方式的子程序
  30.    
  31.     STI             ;打开CPU可屏蔽中断
  32.    
  33.     MOV AL,LED_ON
  34.     MOV DX,LED_IO
  35.     OUT DX,AL

  36. LP:                 ;等待中断,并计数
  37.     NOP
  38.     JMP LP

  39. INTSET:
  40.     MOV DX,CS8259A  ;写ICW1
  41.     MOV AL,ICW1
  42.     OUT DX,AL
  43.    
  44.     MOV DX,CS8259B  ;写ICW2
  45.     MOV AL,ICW2
  46.     OUT DX,AL
  47.    
  48.     MOV AL,ICW4     ;写ICW4
  49.     OUT DX,AL

  50.     MOV AL,OCW1     ;写OCW1
  51.     OUT DX,AL
  52.     RET

  53. INTSERV:
  54.     CLI

  55.     MOV AL,LED_ON
  56.     SHL AL,1
  57.     JNZ OK
  58.     MOV AL, 01H
  59. OK:
  60.     MOV LED_ON,AL
  61.     MOV DX,LED_IO
  62.     OUT DX,AL   
  63.    
  64.     MOV DX,CS8259A
  65.     MOV AL,20H      ;中断服务程序结束指令
  66.     OUT DX,AL   
  67.     STI
  68.     IRET
  69. CODE ENDS

  70. DATA SEGMENT
  71.     LED_ON DB  01H  ;初始LED1亮
  72. DATA ENDS

  73.     END START
复制代码

代码与Proteus仿真下载: 8086中断.7z (64.52 KB, 下载次数: 12)

八路抢答器.zip

39.31 KB, 下载次数: 4, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表