汇编语言与微机原理实验四:8259单脉冲触发中断

本文涉及的产品
云原生内存数据库 Tair,内存型 2GB
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Redis 版,经济版 1GB 1个月
简介: 汇编语言与微机原理实验四:8259单脉冲触发中断

实验目的

掌握可编程中断控制器8259的一般使用方法

掌握8259初始化的编程方法及中断服务程序的编写方法、中断程序的调试方法

实验内容

用单脉冲按钮的正脉冲输出作为中断控制器8259的中断源产生中断请求,在中断服务程序中对中断的次数进行计数,并将计数值显示在数码管的最右边两位,中断10次程序结束。

.MODEL TINY
  .DATA 
  cnt db ?
  done db ?
  ReDisplayFlag db 0
  buffer db 8 dup (?)
  EXTRN initKeyDisplay:near,Display8:near
  .CODE
start:
  mov ax,@data
  mov ds,ax
  mov es,ax
  cli
  push es
  mov ax,0
  mov es,ax
  mov di,8H*4
  mov ax,offset intproc
  mov es:[di],ax
  mov ax,seg intproc
  mov es:[di+2],ax
  pop es
  call initKeyDisplay
  mov dx,250H
  mov al,13H
  out dx,al
  mov dx,251H
  mov al,08H
  out dx,al
  mov al,01H
  out dx,al
  mov al,0FEH
  out dx,al
  mov cnt,0
  mov done,0
  mov redisplayflag,1
  sti 
label1: 
  lea si,buffer              
  call display8
  cmp redisplayflag,0
  call leddisplay
  jz label1
  mov redisplayflag,0
  cmp done,1
  jnz label1
  mov ax,4c00h
  int 21h
intproc proc far
  push ax
  push ds
  sti
  mov ax,seg done
  mov ds,ax
  mov redisplayflag,1
  inc cnt
  cmp cnt,10
  jnz exit
  mov done,1
exit:
  cli
  mov al,20H
  mov dx,250H
  out dx,al
  pop ds
  pop ax
  iret
intproc endp
leddisplay proc near
  mov al,cnt
  mov buffer,al
  mov buffer+1,10H
  mov buffer+2,10H
  mov buffer+3,10H
  mov buffer+4,10H
  mov buffer+5,10H
  mov buffer+6,10H
  mov buffer+7,10H
  ret
leddisplay endp
end start


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
2月前
|
存储 缓存 安全
learn_C_deep_9 (汇编角度理解return的含义、const 的各种应用场景、volatile 的基本理解与实验证明)
learn_C_deep_9 (汇编角度理解return的含义、const 的各种应用场景、volatile 的基本理解与实验证明)
|
11月前
|
算法 vr&ar 网络架构
汇编实验4(99乘法表,整数分解,素数环,迷宫问题)【栈传参,递归,寻址方式】
汇编实验4(99乘法表,整数分解,素数环,迷宫问题)【栈传参,递归,寻址方式】
77 0
【8086汇编】《汇编语言(第三版)》实验一
需要用到的指令✨✨ 查看、修改CPU中寄存器的内容:R命令 查看内存中的内容:D命令 修改内存中的内容:E命令(可以写入数据、指令,在内存中,它们实际上没有区别) 将内存中的内容解释为机器指令和对应的汇编指令:U命令 执行CS:IP指向的内存单元处的指令:T命令 以汇编指令的形式向内存中写入指令:A命令
汇编语言与微机原理实验五:键盘按键与数码管显示
汇编语言与微机原理实验五:键盘按键与数码管显示
169 0
汇编语言与微机原理实验一、实验二、实验三:分支程序设计/循环程序设计/子程序设计
汇编语言与微机原理实验一、实验二、实验三:分支程序设计/循环程序设计/子程序设计
153 0
超详细汇编注释 操作系统实验二 操作系统的引导(哈工大李治军)(二)
超详细汇编注释 操作系统实验二 操作系统的引导(哈工大李治军)(二)
137 0
超详细汇编注释 操作系统实验二 操作系统的引导(哈工大李治军)(二)
|
存储 Ubuntu Linux
超详细汇编注释 操作系统实验二 操作系统的引导(哈工大李治军)(一)
超详细汇编注释 操作系统实验二 操作系统的引导(哈工大李治军)(一)
191 0
超详细汇编注释 操作系统实验二 操作系统的引导(哈工大李治军)(一)
汇编实验三
实验3 数据传送指令练习 一、实验目的: 1.熟悉IBM PC机的数据传送指令的使用。 2. 掌握堆栈的作用。 3.掌握堆栈指示器SP和堆栈操作指令PUSH、POP。 二、实验内容: 1.将数据段中偏移地址为0000H的连续三个字节内容传送至该段偏移地址为0003H的连续三个字节单元中。要求使用直接寻址、寄存器间接寻址方式。
140 0
汇编实验三
|
Ruby
汇编实验2 寻址方式练习
实验目的: 1.理解存储器分段及寻址方式的意义 2.熟练掌握立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址等几种寻址方式。 3.复习巩固DEBUG中的R、D、E命令。 4.掌握用A命令编制程序,U命令进行反汇编,用G、T命令执行程序。
230 0
汇编实验2 寻址方式练习
|
存储
汇编实验一 DEBUG调试工具的使用
一、实验目的 1.学习使用DEBUG程序的各种命令。 2.了解计算机取指令、执行指令的工作过程。 3.掌握用DEBUG调试工具自编程序的方法。
332 0
汇编实验一 DEBUG调试工具的使用