目录 上一页 下一页 附录A

第11章 更高级的技术 -291-

第11章 更高级的技术

  通过前面九章的学习,我们已经掌握了8086/88全部的汇编语言指令,以及PC电脑的一些基本原理,同时还有很多软件方面的知识。不过单凭这样一些东西还不足以成为高水平的程序设计者,掌握更多的资料,学习更多的技术才是通往成功的道路。更多的资料需要大家自己去收集,而学习更多的技术就是本书这最后一章所要献给读者的。

11.1 内存驻留程序设计初步
  提到内存驻留程序想必大家都不陌生,MS-DOS操作系统里就有一些程序是需要驻留内存的,比如SMARTDRV.EXE,还有MSCDEX.EXE。我们使用的一些设备,比如鼠标器,也要有一个驻留内存的驱动程序。这些程序执行之后就留在内存之中,占据一定的内存空间。我们可以利用DOS提供的MEM程序观察到内存中驻留的程序:
C:\DOS\>MEM/C[Enter]
  这里只给出部分显示的内容,实际显示的内容比上面列出的要多,其它有关扩展内存的内容与本章所要讨论的问题无关。
  如何编制驻留内存的程序?有两个问题是必须要解决的:第一是如何让程序老老实实地留在内存之中;第二就是如何让CPU在我们指定的时候能够执行到这个程序。
  第一个问题不难解决,DOS为程序设计者单独提供了一个中断用于将程序驻留在内存之中并将系统控制权转移给操作系统。这个中断就是"INT 27H"。
  这个中断与INT 10H、INT 21H之类不同,它只有一个功能就是将程序驻留在内存之中。它的应用也很简单,在执行INT 27H之前将需要驻留于内存中的程序长度送入DX寄存器,然后执行INT 27H,此时系统将回到DOS提示符下。请看下面的程序示例TSR.ASM。

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 附录A