这个实验综合了外中断,内中断,应该是全书最精华的一个实验,常常思考整个程序的流程,指导这个流程觉得熟悉、自然。

代码如下:

assume cs:code, ss:stackstack segmentdb 128 dup(0)
stack endscode segment
start:mov ax, stackmov ss, axmov sp, 128push cspop dsmov ax, 0mov es, axmov si, offset int9mov di, 204hmov cx, offset int9end - offset int9cldrep movsbpush es:[9*4]pop es:[200h]push es:[9*4+2]pop es:[202h]climov word ptr es:[9*4], 204hmov word ptr es:[9*4+2], 0stimov ax, 4c00hint 21h;int9---------------------
int9:   push axpush bxpush cxpush espush dxin al, 60hmov dl, 'A'pushfcall dword ptr cs:[200h]cmp al, 9ehjne int9retmov ax, 0b800hmov es, axmov bx, 0mov cx, 2000
s:  mov byte ptr es:[bx], dlinc byte ptr es:[bx+1]add bx, 2loop sint9ret:pop dxpop espop cxpop bxpop axiret
int9end:nopcode ends
end start

实验结果:

实验体会:

1,思考按一个'a'快速松手,程序的执行流程?

2,思考按‘b’快速松手,程序的执行流程?

3,思考按一个‘a’连续10个后松手,程序执行的流程?

如果学习流于形式和任务,学不好,学不深,更重要的很痛苦~

学习的本身是有乐趣的,如果没有“学而时习之,不亦乐乎”的感觉,这个学习应该出了问题。

实验15 安装新的int 9中断例程相关推荐

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

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

  2. 安装一个新的int 9中断例程【在DOS下,按Tab建后改变当前屏幕的显示颜色,其它键照常处理】...

    ;任务: ; 安装一个新的int 9中断例程 ;功能: ; 在DOS下,按Tab建后改变当前屏幕的显示颜色,其它键照常处理 1 assume cs:code 2 3 stack segment 4 d ...

  3. 汇编语言随笔(16)- 对磁盘进行读写(int 13h 中断例程)和实验 17

    磁盘读写 3.5 英寸软盘分为上下两面,每面有 80 个磁道,每个磁道又分为 18 个扇区,每个扇区的大小为 512 个字节.下面的磁盘读写均以 3.5 英寸软盘为例. 在读写扇区的时候,要给出面号. ...

  4. int 9中断例程-;在屏幕中间依次显示'a'~'z',并可以让人看清。 在显示的过程中,按下Esc键后,改变显示的颜色...

    ;在屏幕中间依次显示'a'~'z',并可以让人看清. ;在显示的过程中,按下Esc键后,改变显示的颜色 assume cs:code stack segment db 128 dup(0) stack ...

  5. 汇编语言随笔(15)- 对键盘输入进行处理(int 9 和 int 16h 中断例程)

    键盘输入 1,前面讲过, int 9 中断例程负责对键盘输入进行处理,具体为:从 60h 端口读出扫描码,并将其转化为相应的ASCII码或状态信息,一起存储到内存的指定空间(键盘缓冲区或状态字节)中. ...

  6. 汇编语言随笔(13)- 外中断(可屏蔽中断)、实验15

    端口的作用 在PC系统的接口卡和主板上,装有各种接口芯片.这些外设接口芯片内部有若干寄存器,CPU将这些寄存器当作端口来访问.       外设的输入不直接送入内存和CPU,而是送入相关的接口芯片的端 ...

  7. 汇编题目:编写包含多个功能子程序的中断例程

    安装一个新的int  7ch中断例程,为显示输出提供如下的功能子程序. (1)清屏. (2)设置前景色. (3)设置背景色. (4)向上滚动一行 (一)用ah寄存器传递功能号:0表示清屏,1表 ...

  8. 汇编语言随笔(11)- int 指令(返回到应用程序的中断例程),实验13(编写、应用中断例程)

    int 指令 int 指令的格式为:int n,n为中断类型码.这里由 n 显式的给出了调用哪一个中断处理程序.       CPU 的中断过程仍然是: (1)取中断类型码n (2)标志寄存器入栈,I ...

  9. int 9和int 16h中断-键盘输入、读取

    8086PC机当中,键盘的输入将会引发9号中断,BIOS提供了int 9的中断例程.CPU在9号中断发生之后,会去执行int 9中断例程,然后从60h端口当中读取出扫描码,并且将其转换为相应的ASCI ...

最新文章

  1. 调参到头秃?你需要这份自动超参搜索技术攻略
  2. XMind安装/注册完整教程
  3. OPENSSL_Uplink(0098E000,07): no OPENSSL_Applink 错误分析
  4. 关系代数——附加的关系运算(1)
  5. 【启发式合并】【dfs】树数树(nowcoder 20107-C)
  6. NDPIC极简昼夜瀑布流图片WordPress主题
  7. php join查询,thinkphp5模型join关联查询
  8. 优麒麟(Ubuntu Kylin)安装日志
  9. Git-如何回滚代码 revert和reset
  10. RouteDebug.dll
  11. Linux Rsync服务详解(二)——Rsync服务实战
  12. Linux 内存管理之 SLUB分配器(1): Object-layout
  13. AUTOCAD圆角半径过大问题的思考和计算
  14. RK3399外设驱动之I2C驱动
  15. BZOJ 3503([Cqoi2014]和谐矩阵-gauss消元)
  16. 实验十三——DD和S-MAC协议仿真实验
  17. 『UE4数字孪生』开发流程浅析2022版(持续更新)
  18. 7-163 判断正整数n是否同时含有奇数和偶数
  19. python下载安装教程电脑版,python下载好了怎么使用
  20. 社交网站需要多大的服务器空间,社交app选多大云服务器

热门文章

  1. 前端学习(871):attachment注册事件
  2. 前端学习(493):script之延迟脚本和异步脚本
  3. 前端学习(16):跳转链接小练习
  4. java面试题31:结构型模式中最体现扩展性的模式是()
  5. 实例5:python
  6. 纯CSS实现侧边栏/分栏高度自动相等
  7. envoy实现_如何利用 Envoy 的 Postgres 过滤器实现网络可观察性
  8. Visual Studio 添加 自定义 路径宏
  9. TortoiseSVN2IDE.pas源代码
  10. 粗暴,干就完了----徐晓冬似的C语言自学笔记-----实现一个链表结构