assume cs:code
;重写int9中断例程,当按住a后松开,便会产生满屏A
stack segment
dw dup()
stack ends code segment
start:
mov ax,stack
mov ss,ax
mov sp,80h mov ax,
mov es,ax push cs
pop ds ;设置当前段地址 mov si,offset int9;设置当前偏移地址
mov di,204h ;设置目的偏移地址
mov cx,offset int9end - int9 ;复制的执行代码长度
cld
rep movsb push es:[*]
pop es:[200h]
push es:[*+]
pop es:[202h] ;把原int9入口地址储存到0020:0到0020:4处 cli
mov word ptr es:[*],204h
mov word ptr es:[*+], ;把信int9入口地址复制到中断向量表
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,1Eh
jne int9ret
s0: ;在按到a的可能上,确定放开才执行后面打印程序
in al,60h
cmp al,9Eh
jne s0 ;确定断开,才打印屏幕A
mov ax,0b800h
mov es,ax
mov bx,
mov cx,
s:
mov byte ptr es:[bx],'A'
add bx,
loop s
int9ret:
pop es
pop cx
pop bx
pop ax
iret
int9end:
nop
code ends end start

汇编程序52:实验15 安装新的int9中断例程的更多相关文章

  1. 实验十三_编写、应用中断例程_2 & 总结

    编写并安装int 7ch中断例程,功能为完成loop指令的功能 参数:(cx)= 循环次数,(bx)= 位移 以上中断例程安装成功后,对下面的程序进行单步跟踪,尤其注意观察int.iret指令执行前后 ...

  2. 实验十五_安装新的int 9中断例程

    安装一个新的int 9中断例程,功能:在DOS下,按下“A”键后,除非不在松开,    如果松开,就显示满屏幕的“A”:其他的键照常处理. 提示:按下一个键时产生的扫描码称为通码,松开一个键产生的扫描 ...

  3. 安装新的int 9中断例程

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  4. 汇编实验15:安装新的int 9中断例程

    汇编实验15:安装新的int 9中断例程 任务 安装一个新的int 9中断例程,功能:在DOS下,按下“A”键后,除非不在松开,一旦松开后,就显示满屏幕的“A”,其他键照常处理. 预备知识概要 这次实 ...

  5. 联想小新Air 15 安装黑苹果macOS High Sierra 10.13.6过程

    联想小新Air 15 安装黑苹果全过程 本文参考:https://blog.csdn.net/qq_28735663/article/details/80634300 本人是联想小新AIr 15 , ...

  6. linux如何编译安装新内核支持NTFS文件系统?(以redhat7.2x64为例)

    内核,是一个操作系统的核心.它负责管理系统的进程.内存.设备驱动程序.文件和网络系统,决定着系统的性能和稳定性.Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新.新的内核修订了旧内核 ...

  7. 安装新的int 9中断例程2

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  8. VMware 15 安装 MAC OS 10.13 原版(详细图文教程)

    VMware 15 安装 MAC OS 10.13 原版(详细图文教程) 生命在于折腾,之前本想装个双系统黑苹果,什么 U 盘启动盘,四叶草引导,都配置好了,最后跪在一个动态卷上,备份格盘现在弄不了, ...

  9. 汇编试验十五:安装新的int 9中断例程

    安装新的int 9中断例程(按'A'键后显示满屏幕的'A') int 9 是外中断,同样,程序编写还是和其他中断例程类似,安装(复制),调用: 不同点是在于,他要从端口读取数据60h, Source ...

随机推荐

  1. hdu 4325

    #include<stdio.h>//数据弱线段树延迟更新水过 #define N 100100 struct node { int x,y,yanchi,num; }a[N*4]; vo ...

  2. 跨域请求Ajax(POST)处理方法

    getXSSAjax(function() {  //跨域请求        that.ajaxDara(self);}, (bs_tita.webapi || "http://webapi ...

  3. 【BZOJ2301】Problem b(莫比乌斯反演)

    题意:对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d, 且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数. 1≤n≤50000,1≤a≤b≤50000 ...

  4. Codeforces Gym100495 B、D、E、F、K

    http://codeforces.com/gym/100495 K题 草地的面积减去相交的面积,计算几何,垃圾题,避免不必要的计算损失精度(能约分的约分) 卡了老子一个星期了 再加前几天的一道题 这 ...

  5. 【转载】Spring Boot【快速入门】2019.05.19

    原文出处:https://www.cnblogs.com/wmyskxz/p/9010832.html   Spring Boot 概述 Build Anything with Spring Boot ...

  6. MongoDB小结25 - 复合唯一索引

    只要满足索引的其中之一不同即可 db.blog.ensureIndex({"username":1,"blogname":1}) 作者和作品名其中之一不同即可创 ...

  7. 兔子--CheckBox与Radiobutton的差别

    RadioButton和CheckBox的差别: 1.单个RadioButton在选中后.通过点击无法变为未选中状态,单个CheckBox在选中后.通过点击能够变为未选中. 2.一组RadioButt ...

  8. Scala界面事件处理

    演示样例代码: import scala.swing.SimpleSwingApplication import scala.swing.MainFrame import scala.swing.Bu ...

  9. 单点登录之CAS简介

    cas官网http://www.ja-sig.org/products/cas/. ok,如今開始本文的重点内容解说,先来了解一下cas 实现single sign out的原理,如图所看到的:    ...

  10. 第一个GraphX程序

    程序功能:收集顶点指向的邻居中所在地 /* * 找出每一个顶点所指向的邻居中所在的地区 */ import org.apache.spark.SparkContext import org.apach ...