安装新的int 9中断例程(按'A'键后显示满屏幕的'A')

int 9 是外中断,同样,程序编写还是和其他中断例程类似,安装(复制),调用;

不同点是在于,他要从端口读取数据60h,

Source Code :

assume cs:code

stack segment
db dup()
stack ends code segment
start:
mov ax,stack
mov ss,ax
mov sp, push cs
pop ds
mov si,offset int9start mov ax,
mov es,ax
mov di,204h mov cx,offset int9end - offset int9start
cld
rep movsb push es:[*]
pop es:[200h]
push es:[*+]
pop es:[202h] cli
mov word ptr es:[*],204h
mov word ptr es:[*+],0h
sti mov ax,4c00h
int 21h int9start:
push ax
push cx
push es
push di pushf
call dword ptr cs:[200h]
in al,60h
cmp al,1eh+80h
jne ok mov cx,
mov ax,0b800h
mov es,ax
mov di,
s:
mov byte ptr es:[di],'A'
mov byte ptr es:[di+],
add di,
loop s ok:
pop di
pop es
pop cx
pop ax
iret
int9end:
nop code ends
end start

实验效果:

汇编试验十五:安装新的int 9中断例程的更多相关文章

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

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

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

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

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

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

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

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

  5. VS2017十五项新功能体验

    Visual Studio 2017十五项新功能体验 Visual Studio 2017正式已经于2017.3.7号正式发布,选在这一天发布也是为了纪念Visual Studio 二十周年.MVP ...

  6. Visual Studio 2017十五项新功能体验

    Visual Studio 2017正式已经于2017.3.7号正式发布,选在这一天发布也是为了纪念Visual Studio 二十周年.MVP 2017技术峰会将于这个周末(3.17)在北京举办,由 ...

  7. 汇编试验十四:访问CMOS RAM

    CMOS RAM 芯片的特征: 包含一个时钟和一个有128个存储单元的RAM存储器. 该芯片靠电池供电.所以,关机后其内部的时钟仍可正常工作,RAM中的信息不丢失. 128个字节的RAM中,内部时钟占 ...

  8. x86汇编利用int 16h中断实现伪多线程输入

    x86汇编利用int 16h中断实现伪多线程输入 我们都知道,如果想让一个程序,同时又干这个,又干那个,最好的办法就是多线程.这个在高级语言里面已经用烂了. 但是,DOS是只有单线程的.我如果想让程序 ...

  9. ExpandoObject与DynamicObject的使用 RabbitMQ与.net core(一)安装 RabbitMQ与.net core(二)Producer与Exchange ASP.NET Core 2.1 : 十五.图解路由(2.1 or earler) .NET Core中的一个接口多种实现的依赖注入与动态选择看这篇就够了

    ExpandoObject与DynamicObject的使用   using ImpromptuInterface; using System; using System.Dynamic; names ...

随机推荐

  1. Iterator和for...of循环

    Iterator和for...of循环 Iterator(遍历器)的概念 数据结构的默认Iterator接口 调用Iterator接口的场合 字符串的Iterator接口 Iterator接口与Gen ...

  2. 深入理解JavaScript系列(43):设计模式之状态模式

    介绍 状态模式(State)允许一个对象在其内部状态改变的时候改变它的行为,对象看起来似乎修改了它的类. 正文 举个例子,就比如我们平时在下载东西,通常就会有好几个状态,比如准备状态(ReadySta ...

  3. Jmeter进行性能测试时多台负载机的配置方法

    参考:https://blog.csdn.net/russ44/article/details/54729461 Jmeter进行性能测试时多台负载机的配置方法 Jmeter 是java 应用,对于C ...

  4. RPA流程自动化-UIPath简介

    UiPath简介 转自: http://www.cnblogs.com/mxue/p/UiPath_To147_Road.html 最近RPA比较火,UiPath工具排名前几位并且免费试用,很多朋友们 ...

  5. 点击checkbox全选,其它被选中,再点击取消

    <input type="checkbox" value="" id="checkall" name="" siz ...

  6. MySql数据库与JDBC编程二

    DML语法语句:主要操作数据表中的数据,完成插入新数据,修改已有数据,删除不要的数据的任务 1,insert into 语句 用于向指定表插入数据,一次只能插入一条记录:insert into tab ...

  7. golang的xml、json解析

    xml golang的xml处理主要应用Unmarshal.Marshal方法实现,解析一个xml到struct如下,首先是xml文件: <?xml version="1.0" ...

  8. 转IE9以下$.ajax跨域返回“No transport”

    $.ajax({ type: "POST", async: false, contentType: "application/x-www-form-urlencoded; ...

  9. 三、Bean的初始化

    一.使用构造器实例化Bean:这是最简单的方式,Spring IOC容器既能使用默认空构造器也能使用有参构造器两种方式创建bean 空构造器 <bean name="bean1&quo ...

  10. perf4j 监控请求 + traceId区分日志

    1. 场景 从request进入Controller到出去的时间, 可以统计接口访问的一些数据,如:平均处理时间.最大处理时间 2. 代码 2.1 mvc-servlet 定义切面和拦截器 <? ...