王爽 汇编语言 第三版 实验15 安装新的int 9中断例程
2017-03-20 17:06
761 查看
题目
安装一个新的int 9中断例程,功能:在DOS下,按下“A”键后,除非不再松开,如果松开,就显示满屏幕的“A”,其他的键照常处理。源代码
assume cs:code code segment main: mov ax,cs mov ds,ax mov si,offset startF ;设置ds:si指向源地址 mov ax,0 mov es,ax mov di,204H ;设置es:di指向目的地址 mov cx,offset endF - offset startF ;设置传输长度 cld ;设置传输方向为正 rep movsb ;将原来的int 9中断例程的入口地址保存到0000:0200H处 mov ax,es:[9*4] mov es:[200H],ax mov ax,es:[9*4+2] mov es:[202H],ax ;将入口地址0:204H,写入中断向量表的9号表项中 mov word ptr es:[9*4],204H mov word ptr es:[9*4+2],0 mov ax,4C00H int 21H startF: nop ;------------------------------- ;名称:int9 ;功能:对松开A键事件进行相关操作 ;参数:无 ;返回:无 ;------------------------------- int9: in al,60H ;从端口60H读出键盘的输入 pushf call dword ptr cs:[200H] ;调用原来的int 9中断例程 call keyboard iret keyboard: ;如果松开了A键,则断码为9EH cmp al,9EH je keyUpA ret ;---------------------- ;名称:keyUpA ;功能:显示满屏幕的“A” ;参数:无 ;返回:无 ;---------------------- keyUpA: mov ax,0B800H mov es,ax mov di,0 mov cx,160*25/2 mov al,'A' a1: mov byte ptr es:[di],al add di,2 loop a1 ret endF: nop code ends end main
程序运行示例图
相关文章推荐
- 王爽《汇编语言》实验15:安装新的int 9中断例程 解答
- 王爽《汇编语言》实验15 安装新的int 9中断例程
- 王爽 汇编 实验15:安装新的int9中断例程
- 王爽《汇编语言》实验15——安装新的INT 9中断例程
- 汇编语言(王爽)-实验十三(二)中断例程对loop功能实现的简单变通
- 王爽 汇编语言 第三版 实验12 编写0号中断的处理程序
- 王爽汇编 实验13编写int 7cH中断例程(1)
- 王爽 汇编 实验16 增加键盘中断调用int 7ch中断例程
- 8086汇编学习小记-王爽汇编语言第十五章外中断及实验15
- 实验15 安装新的int 9中断例程
- 汇编语言(王爽 第三版)实验七
- 汇编语言 第三版 王爽 实验6 更改大写字母
- 汇编语言(王爽 第三版)实验十一
- 汇编语言 第三版 王爽 实验10-1 编写子程序 之 显示字符串
- 汇编语言(王爽 第三版)实验十四
- 实验十五_安装新的int 9中断例程
- 王爽 汇编 实验16 编写包含多个功能子程序的中断例程
- 汇编语言(王爽 第三版)实验九
- 汇编语言(王爽 第三版)实验五
- 汇编语言(王爽 第三版)实验十五