安装新的int 9中断例程2
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;} th{border: 1px solid gray; padding: 4px; background-color: #DDD;} td{border: 1px solid gray; padding: 4px;} tr:nth-child(2n){background-color: #f8f8f8;}
|
assume cs:code
stack segment
db 128 dup (0)
stack ends
code segment
start: mov ax , stack
mov ss , ax
mov sp , 128
push 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
push es:[4*9] ; 保存原int 9中断例程入口地址
pop es:[200h]
push es:[4*9+2]
pop es:[202h]
cli
mov word ptr es:[4*9] , 204h ; 设置新的int 9中断入口地址
mov word ptr es:[4*9+2] , 0h
sti
mov ax , 4c00h
int 21h
|
int9: push ax
push bx
push cx
push es
in al , 60h
pushf
call dword ptr cs:[200h]
cmp al , 9eh ; 'A' 的断码
jne int9ret
mov ax , 0b800h
mov es , ax
mov bx , 0
mov cx , 2000 ; 25*80=2000 一页可以存2000个字符,每个字符要存一个字符属性,25*160=4000
s: mov byte ptr es:[bx] , 'A'
mov byte ptr es:[bx+1] , 00000100b
add bx , 2
loop s
int9ret: pop es
pop cx
pop bx
pop ax
iret
int9end: nop
code ends
end start |
安装新的int 9中断例程2的更多相关文章
- 汇编试验十五:安装新的int 9中断例程
安装新的int 9中断例程(按'A'键后显示满屏幕的'A') int 9 是外中断,同样,程序编写还是和其他中断例程类似,安装(复制),调用: 不同点是在于,他要从端口读取数据60h, Source ...
- 汇编实验15:安装新的int 9中断例程
汇编实验15:安装新的int 9中断例程 任务 安装一个新的int 9中断例程,功能:在DOS下,按下“A”键后,除非不在松开,一旦松开后,就显示满屏幕的“A”,其他键照常处理. 预备知识概要 这次实 ...
- 实验十五_安装新的int 9中断例程
安装一个新的int 9中断例程,功能:在DOS下,按下“A”键后,除非不在松开, 如果松开,就显示满屏幕的“A”:其他的键照常处理. 提示:按下一个键时产生的扫描码称为通码,松开一个键产生的扫描 ...
- 安装新的int 9中断例程
body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...
- 实验十三_编写、应用中断例程_2 & 总结
编写并安装int 7ch中断例程,功能为完成loop指令的功能 参数:(cx)= 循环次数,(bx)= 位移 以上中断例程安装成功后,对下面的程序进行单步跟踪,尤其注意观察int.iret指令执行前后 ...
- x86汇编利用int 16h中断实现伪多线程输入
x86汇编利用int 16h中断实现伪多线程输入 我们都知道,如果想让一个程序,同时又干这个,又干那个,最好的办法就是多线程.这个在高级语言里面已经用烂了. 但是,DOS是只有单线程的.我如果想让程序 ...
- 汇编程序52:实验15 安装新的int9中断例程
assume cs:code ;重写int9中断例程,当按住a后松开,便会产生满屏A stack segment dw dup() stack ends code segment start: mov ...
- 王爽 <<汇编 语言>> 13.6 BIOS中断例程应用
;名称:ILOVEU程序 ;使用BIOS提供的中断例程 assume cs:code code segment main: ;显示背景22*80 ;dh中放行号 ;dl中放列号 bibi: push ...
- linux如何编译安装新内核支持NTFS文件系统?(以redhat7.2x64为例)
内核,是一个操作系统的核心.它负责管理系统的进程.内存.设备驱动程序.文件和网络系统,决定着系统的性能和稳定性.Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新.新的内核修订了旧内核 ...
随机推荐
- Linux中创建新用户并赋给指定文件权限
工作中用到了,写篇日志总结一下. 创建新的用户: 第一种方式: 创建用户: adduser name 创建密码: passwd name(回车后出现修改密码的提示) 该方式创建的用户目录默认在home ...
- iOS获取各种数据方法整理以及IDFA与IDFV使用环境
iOS获取APP版本号: NSString *AppVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBun ...
- 《vue.js2.0从入门到放弃》学习之路
原文地址: Vue.js2.0从入门到放弃---入门实例(一):http://blog.csdn.net/u013182762/article/details/53021374 Vue.js2.0从入 ...
- android散点技术
1.怎么实现android虚拟按键(回退和回到主界面) android 中如何模拟back键 2.怎么用局域网的方式(wifi或是网线)来调试android机 参考资料: http://www.ith ...
- eclipse导入工程时,出现Some projects cannot be imported because they already exist in the workspace
前提条件: 1.将eclipse中现有的工程javatraining删除,如下图所示, 该复选框不要勾选,点击ok steps: 1.本次打开Eclipse想要把已删除的javatraining工程再 ...
- T-SQL逻辑查询处理
引言 本文是对<Microsoft SQL SERVER 2008技术内幕 T-SQL查询>中的第一章做的阅读笔记,这一章的主要内容是分析SQL查询中各子句的执行顺序.如果你对此已了然于胸 ...
- Python数据分析与可视化(经典学习资料)
Numpy:来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多,本身是由C语言开发.这个是很基础的扩展,其余的扩展都是以此为基础.数据结构为 ...
- MVC异步加载学习笔记
一.普通的异步请求 1.View层 <input type="text" id="Name" value="" placeholder ...
- centos设置程序开机自启或禁止加载
1. 可以直接把需要启动的脚本写到/etc/rc.d/rc.local文件里,例如 vim /etc/rc.d/rc.local /usr/local/apache/bin/apachectl sta ...
- 使用sysbench对mysql压力测试
sysbench是一个模块化的.跨平台.多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况.关于这个项目的详细介绍请看:https://github.com/akopytov/sy ...