鱼C论坛

 找回密码
 立即注册
查看: 2298|回复: 3

int9中断例程疑问

[复制链接]
发表于 2012-11-6 21:40:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在int9中断例程中,
  1. int9h:
  2.                 push ax
  3.                 push bx
  4.                 push es
  5.                
  6.                 in al,60h
  7.                
  8.                 pushf
  9.                 pushf
  10.                 pop bx
  11.                 and bh,11111100b
  12.                 push bx
  13.                 popf
  14.                 call dword ptr ds:[0];调用这个的目的是什么?
  15.                
  16.                 cmp al,1
  17.                 jne int9ret
  18.                
  19.                 mov ax,0b800h
  20.                 mov es,ax
  21.                 inc byte ptr es:[160*12+40*2+1]
  22.                
  23.         int9ret:
  24.                 pop es
  25.                 pop bx
  26.                 pop ax
  27.                 iret
复制代码
为什么没有那一句,连基本的字母更替都做不到(我实验时程序直接返回了,屏幕留下的是a),我根本没有按任何按钮,理论不会触发int 9h才对啊。


补充内容 (2012-11-6 21:45):
忘了说了,以上只是中断例程部分,不是全部代码
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-11-6 23:28:57 | 显示全部楼层
求解答
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-11-7 22:23:14 | 显示全部楼层
已经了解原因,,结帖
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-21 08:55:27 | 显示全部楼层
有同感,同样的问题想了好长时间, call dword ptr ds:[0]调用了原int 9h中断,这样程序在运行的时候可以接收键盘其它指令,可为什么要放在新编中断的中间部位,而不是放在颜色显示后面……或者是程序中根本就不调用原int 9h???
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-4 03:58

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表