2014-10-29 51 views
0

我正在练习汇编语言一段时间,我有点深入了解它。我开始做TSR程序,比如扫描来自键盘的输入等等。
仍然令我感到困惑的是,如何按下某个按键来运行我的已终止的程序。
我试图创建的最基本的东西是在屏幕开始时显示我的名字,例如按下“^”键。请注意,我希望这种情况发生我的程序执行

Command line终止驻留装配程序

后,就像你在图片上看到的。想象一下,我开始了ma程序“test.com”。在我的“test.com”程序中,我编写了TSR代码,只要按“^”键,我的名字就写在屏幕的开头。现在,你可以在图片上看到我的程序是完成,我可以运行新程序。但是当我按“^”键时,我仍然想在屏幕的开头写我的名字,尽管程序不再运行。

对不起,这样详细的职位,但我想确定你明白我在问什么。我知道基本的/高级的程序集编程,我熟悉用定制程序和一切来改变中断。我与TSR程序合作,当他们执行时执行,而不是之后。

我也很感激,如果你不发布愚蠢的答案,如“你为什么这样做”,“哇,你住在过去它是无用的”。我有我自己的理由这样做,但显然是出于练习的原因。如果只有真正了解大会的人才能回答我,而不是那些想获得更多徽章答案的人,那将会很好。

我最想做的事情是,如果有人可以给我写一个样本代码,我问或至少有一些指示,如我应该用什么interupt来做到这一点。

在此先感谢

+0

下面是关于如何挂接键盘中断的一些建议:http://stackoverflow.com/questions/12882342/override-default-int-9h – hcs 2014-10-30 00:53:21

回答

0

我现在想通了。诀窍是,你只需要编辑你的BIOS中断,而且比类型是这样的

mov ax,3100h ; *This will terminate program and make it resident in RAM memmory* 
mov dx,ammount_of_memmory ; *This is the amount of memmory i want to reserve for my program* 
int 21h ; *This is the DOS system call to execute our program* 

这样,你可以改变,如果你按下键盘上的某个键会发生什么。但是,如果我们想要显示信息,当某些操作发生时,我们需要将它直接放在显存上,而不是使用标准的打印功能。