改写中断例程的方法(1504)
来源:互联网 发布:centos搭建git服务器 编辑:程序博客网 时间:2024/05/16 18:23
本文为《汇编语言程序设计》1504小节例程。点击链接…进课程主页。
任务:安装一个新的int 9中断例程
功能:在DOS下,按F1键后改变当前屏幕的显示颜色,其他的键照常处理。
程序:
assume cs:codestack segment db 128 dup (0)stack endscode segmentstart: ; 设置各段地址 mov ax,stack ; 栈段 mov ss,ax mov sp,128 push cs ; ds与cs相同 pop ds mov ax,0 ; 附加段 mov es,ax ; 安装新程序 mov si,offset int9 mov di,204h mov cx,offset int9end - offset int9 cld rep movsb ; 将原中断地址保存在0:200单元处 push es:[9*4] pop es:[200h] push es:[9*4+2] pop es:[202h] ; 改变后中断的入口地址 cli mov word ptr es:[9*4],204h mov word ptr es:[9*4+2],0 sti mov ax,4c00h int 21h ;定义新中断例程int9:push ax push bx push cx push es in al,60h pushf ; 调用旧中断例程 call dword ptr cs:[200h] ; 处理F1键 cmp al,3bh jne int9ret mov ax,0b800h mov es,ax mov bx,1 mov cx,2000 s: inc byte ptr es:[bx] add bx,2 loop sint9ret: pop es pop cx pop bx pop ax iretint9end:nopcode endsend start
阅读全文
0 0
- 改写中断例程的方法(1504)
- 关于S12的中断例程
- INT9h 中断例程的安装
- String的equals方法改写
- 中断处理例程的返回值说明
- 中断处理例程的返回值
- 中断处理例程返回值的作用?
- Linux中断处理例程的行为限制
- ;编写安装中断7ch的中断例程
- 改写方法
- 全外连接的union改写方法
- 改写equals与hashCode的简单方法
- 用UFLDL的方法改写Denoising Autoencoder
- 灵活运用runtime改写系统的方法
- 改写CNN网络的一些问题解决方法
- ISR 中断服务例程
- 单片机中断例程
- DOS中断例程应用
- netty高性能原因,netty调优
- 命名规范问题
- 端口的读写(1402)
- 操作CMOS RAM芯片(1403)
- 定制键盘输入处理(1503)
- 改写中断例程的方法(1504)
- 用中断响应外设(1701)
- 应用:字符串的输入(1702)
- GPS用户定位
- C语言基础系列-C语言中的32个关键字-02
- Mariadb数据库:基本语句及操作 数据库及用户管理
- 让计算机“唱歌”(1704)
- “一带一路”高峰论坛联合公报
- Apache基本信息与配置、控制访问