文档详情

实验7 中断程序设计.doc

发布:2016-10-30约4.84千字共7页下载文档
文本预览下载声明
实验七 中断程序设计与I/O程序设计 计科1093班 伍林锋 200911621323 实验目的 1.?学习中断的原理和设置中断向量,加深对程序的理解.model small .stack .data cnt dw 100 ;计数次数 mes db 5 dup(0),$ ;内存缓冲区 str db please enter:$ ;提示字符串 crlf db 0dh,0ah,$ ;回车换行 .code start: mov ax, @data mov ds, ax mov si,0 ;缓冲区指针 mov al, 1ch mov ah, 35h int 21h ;取原向量1ch push es push bx ;保存原向量 push ds mov dx, offset input mov ax, seg input mov ds, ax mov al, 1ch mov ah, 25h int 21h ;设置新向量1CH,对应中断处理程序input pop ds in al, 21h ;读中断屏蔽寄存器 push ax and al, out 21h, al ;增加定时器和键盘中断 in al, 20h ;读中断命令寄存器 push ax mov al out 20h,al ;使键盘中断的优先级高于定时器中断 sti ;开中断 rotate: cmp si,5 jl rotate mov ah,2 mov bh,0 mov dh,10 mov dl,30 int 10h ;设置光标在屏幕中央 mov dx, offset mes mov ah, 09 int 21h ;显示内存缓冲区的字符串 pop ax out 20h,al ;恢复中断命令寄存器 pop ax out 21h,al ;恢复中断屏蔽寄存器 pop dx pop ds mov al, 1ch mov ah, 25h int 21h ;恢复原向量 mov ax, 4c00h int 21h ;-------------中断处理程序 input proc near push ds push ax push cx push dx ;保存寄存器 mov ax, @data mov ds, ax sti ;开中断,允许中断嵌套 dec cnt ;递减计数 jnz exit mov ah,9 lea dx,str int 21h ;显示提示字符串 mov ah,0 int 16h ;等待键盘输入 mov mes[si],al ;接收字符到缓冲区 inc si mov ah,9 lea dx,crlf int 21h ;显示回车换行 mov cnt,100 ;重新进行计数 exit: cli ;关中断 pop dx pop cx pop ax pop ds
显示全部
相似文档