益友软件工作室

加密金刚锁相关技术 → C语言类技术文章 → C语言中调用DOS和BIOS中断的几种方法

C语言中调用DOS和BIOS中断的几种方法

文章作者:陈祖荣

C语言中有多个调用DOS和BIOS中断的语句,它们各有特色。下面以在屏幕坐标100,100处画一个点为例,逐一介绍。

一、asm语句

1、特点:

可以用来编写汇编语句,使程序更简捷。

2、例程:

main(){

asm{ //用的是Turbo C++的格式,Turbo C可以改成相应格式

mov ah,0;

mov al,0x12;

int 0x10;

mov ah,0x0c;

mov al,14;

mov cx,100;

mov dx,100;

int 0x10;

mov ax,0;

int 0x16;

}

}

二、int86语句

1、特点:

可以使用结构的量变REGS,REGS有输入和输出。

2、例程:

main(){

union REGS regs;

regs.h.ah=0;

regs.h.al=0x12;

int86(0x10;&regs,&regs);

regs.h.ah=0x0c;

regs.h.al=14;

regs.x.cx=100;

regs.x.dx=100;

int86(0x10,&regs,&regs);

regs.x.ax=0;

int86(0x16,&regs,&regs);

}

三、geninterrupt语句

1、特点:

可以直接使用C语言提供的寄存器_AX,_AH,_AL,_BX,_BH,_BL,_CX,_CH,_CL,_DX,_DH,_DL,_SI,_ES,_DI,_SS,_BP,_CS,_SP,_DS等。

2、例程:

main(){

_AH=0;

_AL=0x12;

geninterrupt(0x10);

_AH=0x0c;

_AL=14;

_CX=100;

_DX=100;

geninterrupt(0x10);

_AX=0;

geninterrupt(0x16);

}

四、另外还有int86x与intdos等,与上面几例大同小异,不再赘述。

陈祖荣 1998年10月24日晚上

特别申明

本栏目的文章都是本人从网上搜集而来,仅供大家学习研究之用,请不要用于商业目的!其中署名“佚名”的,意思是作者不详。如果某些文章未署你的名字,请来信告知,我会补上的。如果你认为某些文章侵犯了你的正当权宜,也请来信,我会将它删除。