第一范文网 - 专业文章范例文档资料分享平台

C语言课程设计(图形编程 全)(4)

来源:用户分享 时间:2022-05-06 本文由小小的萌 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

几个中断函数

在我们了解了什么是中断后,我们通过实例来介绍几个DOS中断函数。

int86()函数

函数说明如下:

int int86(int intr_num, union REGS *inregs, union REGS *ourregs);

这个函数的三个参数如上述的BIOS功能调用一样,其中第一个参数mtr_num表示BIOS调用类型号,即中断类型号,第二个参数表示是指向联合类型REGS 的指针,它用于接收调用的功能号及其他一些指定的入口参数,以便传给相应的寄存器,第三个参数也是一个指向联合类型REGS的指针,它用于接收功能调用后的返回值,即出口参数,如调用的结果,状态信息,这些值从相关寄存器中得到。

联合类型PEGS在dos.h头文件中定义,因而使用该函数时,应将dos.h文件包括在程序中,在dos.h中PEGS定义如下:

struct WORDREGS

{

unsigned int ax,bx,cx,dx,si,di,cfiag,flags;

};

struct BYTEREGS

{

unsigned char al,ah,bl,bh,cl,ch,dl,dh;

}

unionPEGS

{

struct WORDREGS x;

struct BYTEREGS h;

}

它表示REGS是一个联合类型名。该联合的成员由结构类型的x和h组成,其中x代表16位寄存器变量,它的成员用8088CPU的相关寄存器名表示(注意! 它们并不是真正的物理寄存器)。其中cilag代表标志寄存器的进位标志位,一般调用后,从该标志位是0还是1可知调用成功还是失败。结构类型h代表8位寄存器变量,即长度为字节的结构变量,它的成员与相关的8088的8位寄存器同名。union REGS表示两个成员x,h共用一个内存区域,即可以是16位长,也可以是8位长,我们可以用这个内存区向有关的寄存器赋值,或取得有关寄存器的返回值,这样就和BIOS调用格式一致起来了,如定义一个ax变量并赋值为2,可写作:

union REGS regs;

regs.x.ax=2;

它表示regs变量是一个REGS联合类型,取其16位的结构成员x中的ax井赋值2。

上述的定义与赋值过程,实际上就完成了对该变量代表的寄存器的赋值。

下面示例INT 10H,功能号为2的显示中断调用,它的功能是设置光标位置,其中DH为光标所在行号,DL为光标所在列号,BH为显示光标的页号,选0。出口参数无,下面的程序在屏幕35行10列出显示出Hello字样。

#include

#include

#include

#define VIDEO 0x10

void movetoxy(int x,int y)

{

union REGS regs;

regs.h.ah=2;

regs.h.dh=y;

regs.h.dl=x;

regs.h.bh=0;

int86(VIDEO,?s,?s); /*BIOS中断调用*/

}

int main(void)

{

clrscr(); /*清屏幕*/

movetoxy(35,10); /*调用movetoxy函数*/

printf("Hello\n");

return 0;

}

intdos()函数

它的说明格式是:

int intdos(union REGS *inregs, union REGS *outregs);

该函数的第一个参数足表示相应功能号的入口参数,第二个参数是出口参数,调用后,返回值在outregs的AX寄存器中,并将设置标志寄存器flags,若进位标志器cilag被置位,则表示调用出错,此时AX中为错误代码,若为零,则表示成功。

由于该函数的参数中没有涉及到有关段寄存器,因而当进行要改变段的一些调用时,该函数就不能用了。

下面的示例程序是利用该函数进行DOS系统调用,删除一个当前目录下的文件(不需要改变段值):

#include

#include

int delete_file(char near *filename)

{

union REGS regs;

int ret;

regs.h.ah=0x41;

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新小学教育C语言课程设计(图形编程 全)(4)全文阅读和word下载服务。

C语言课程设计(图形编程 全)(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1420844.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top