- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言调用BIOS中断
【转自】/article/article_2_2.htm
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);
}
文档评论(0)