欢迎来到天天文库
浏览记录
ID:20496819
大小:142.50 KB
页数:7页
时间:2018-10-09
《ms-dos软件中断与系统功能调用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、MS-DOS软件中断与系统功能调用操作系统是系统软件的核心,它负责管理计算机的所有资源,协调计算机的各种操作。操作系统和编辑程序、汇编程序、连接程序、调试程序等一系列系统实用程序一起组成微型计算机的系统软件。MS-DOS是PC机上用得最普遍的操作系统,其主要功能可以分为两方面。一个是设备管理功能,管理显示器、键盘、磁盘、打印机、异步通信口等各种设备资源;另一个是文件管理功能,包括如何在磁盘上建立文件、删除文件、读/写文件和检索文件等。MS-DOS采用层次化模块结构,它有基本输入/输出模块BIOS、磁盘管理模块、命令处理模块这3个主要模块。它从两
2、个层次上向用户提供了接口,普通用户可以通过键盘命令在命令处理模块这个层次上和操作系统打交道。高级用户可以通过软件中断和系统功能调用在MS-DOS的较低层次上,即磁盘管理模块和基本输入/输出模块,和操作系统打交道。MS-DOS能处理的命令分内部命令和外部命令两类。内部命令往往是最常用的一些命令,如目录显示命令DIR、复制文件命令COPY、文件改名命令REN等,它们所对应的命令执行模块就在COMMAND.COM程序内部。大部分命令属于外部命令,一个外部命令的处理要通过此命令所对应的一个命令文件的执行来实现。例如,我们要设计、运行用汇编语言编写的程序
3、,就要用到下列外部命令,用编辑命令EDLIN来编辑文件,用汇编命令MASM来得到目标文件,用连接命令LINK来得到可执行文件,在程序被确认完全正确之前,还要用调试命令DEBUG进行调试。MS-DOS的主要系统功能都是用中断处理程序的形式来提供的,用户可以按照一定的格式在指定寄存器中存放好某一适当的参数,再用一条INT中断指令,便可调用某个中断子程序,这就是利用软件中断方法来调用操作系统的功能。因为类型为21H的软件中断所对应的中断处理程序中包含了实现外部设备管理功能、文件读/写功能和管理功能、目录管理功能等最常用的功能子程序,它们几乎包括了整个
4、系统的功能,所以系统功能调用这个术语通常指对类型为21H的软件中断。C.1常用软件中断常用的几个软件中断类型如表C-1所示。表C-1常用的软件中断中断类型号功能入口参数出口参数10H设置屏幕参考表C-21AH设置时间和读取时间AH=1设时间AH=0读时间CX、DX中为所设时间CX和DX中为时间20H程序正常退出无无25H读磁盘扇区AL=盘号CX=所读扇区数DX=起始逻辑扇区号DS:BX=缓冲区首址CF=1表示出错26H写磁盘扇区AL=盘号CX=所写扇区数DX=起始逻辑扇区号DS:BX=缓冲区首址CF=1表示出错27H程序驻留退出DS:DX=程序
5、长度1)读/写磁盘扇区的软件中断INT25H和INT26H软件中断指令分别用来实现对磁盘指定扇区的读/写。这两条指令在执行时,会分别转去执行BIOS中的读磁盘扇区子程序。调用前,必须按表C-1中要求的入口参数对指定寄存器内容进行设置。同时,应保存每个重要寄存器的内容。因为这个中断破坏除段寄存器(CS,DS,SS和ES)之外的所有寄存器的内容。2)退出程序的软件中断用户程序中可以分别用INT20H和INT27H软件中断指令来退出程序。用INT20H退出程序很简单,不需要任何入口参数。实际上,INT20H指令和JMP0指令是一样的,因为在数据段的0
6、单元开始是程序段前缀PSP,而PSP+0、PSP+1两单元中存放的就是INT20H指令。不过,JMP0返回方式只能用在扩展名为COM的文件中,不能用在扩展名为EXE的文件中,因为COM文件总是小于64K,运行时,DS、CS、ES、SS的值相同,所以,JMP0指令真正能转移到程序段前缀首部,而扩展名为EXE的文件不具备这个特点。用户程序以INT27H退出时,MS-DOS会把此用户程序看成是系统的一个组成部分。因此,在其它程序装配运行时,这部分用户程序不会受到覆盖。通常用户对自己编写的中断处理程序进行装配以后,常用这种方法返回控制台命令接收状态,因
7、为这样做,MS-DOS会将用户编写的中断处理程序作为系统程序而驻留内存,所以其它用户程序可以用软件中断的方式调用这部分程序。要注意的是用INT27H指令前必须在DX中设置要驻留的程序长度(按字节计算)。否则,尽管会实现返回,但没有得到驻留。3)设置时间和读取时间用指令INT1AH可以实现对时间的设置和读取。使用这条指令前,在AH寄存器中必须存放1或0,以指出当前是要设置时间还是读取时间。如果为设置时间,则还须在CX和DX中分别存放时间的高位字节和低位字节作为入口参数。如果是读取时间,CX和DX寄存器中作为出口参数得到时间值。4)屏幕的设置用户可
8、以用INT10H对屏幕进行设置。使用10H中断时,AH中要存放功能号,并在指定的寄存器中存放入口参数。表C-2列出了10H对应的功能。表C-210H对
此文档下载收益归作者所有