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


转自:http://www.encrypter.net/article/article_2_2.htm


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等,与上面几例大同小异,不再赘述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值