人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

c語言中時間陷阱的完成

c語言中時間陷阱的完成

更新時間:2022-07-18 文章作者:未知 信息來源:網絡 閱讀次數:

時間陷阱.它能是主程序的運行和對事件的處理異步進行.通過設置時間陷阱.可以在規定的時間間隔到達后自動執行某個子程序.子程序運行結束后又回到主程序的斷點處繼續執行.basic語言提供了有關時間陷阱的語句.可以直接調用.但C語言沒有這樣的功能,為了能實現上述功能,這里給出了幾個子函數以幫助實現.

#include<dos.h>

#define Sizeprogram 375
void interrupt (*oldtimer)();
void interrupt newtimer();
static struct SREGS seg;
unsigned intsp,intss;
unsigned myss,stack;
unsigned vseg;
int running=0;
int m1,m2,m3=0;
int (*sub_ptr)();
void on_timer();
void timer_on();
void timer_off();

void on_timer(t,pp);
int t;
int (*pp)();
{
sub_ptr=pp;
m1=t;
segread(&seg);
stack=(Sizeprogram-(seg.ds-seg.cs))*16-300;
myss=_SS;
oldtimer=getvect(0x1c);
}

void timer_on()
{
m2=0;
m3=1;
setvect(0x1c,newtimer);
}
void timer_off()
{
m3=0;
setvect(0x1c,oldtimer);
}
void interrupt newtimer()
{
(*oldtimer)();
if(running==0)
running=1;
disable();
intsp=_SP;
intss=_SS;
_SP=stack;
_SS=myss;
enable();
if(m3==1){
if(m2==m1*18){
m2=0;
(*sb_ptr)();
}
m2+=1;
}
disable();
_SP=intsp;
_SS=intss;
enable();
running=0;
}
}

#include<dos.h>
#define TRUE 1
void ptr();
main()
{
char ch;
char *p:
p=(char *)ptr;
on_timer(t,p);
while(TRUE){
ch=getch();
switch(ch){
case ''0'': timer_off();break;
case ''1'': timer_on();break;
case ''2'': timer_off();brea;
default: printf("%c",ch);
}
}
}

void ptr()
{
union REGS in,out;
in.h.al=''A'';
in.h.ah=14;
int86(0x10,&in,&out);
}

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 彭阳县| 内黄县| 称多县| 朝阳县| 商丘市| 伊川县| 上饶县| 景泰县| 海晏县| 托里县| 砀山县| 武强县| 固安县| 鲁山县| 三台县| 香河县| 基隆市| 隆昌县| 乳源| 安康市| 兴国县| 南皮县| 甘孜县| 腾冲县| 金阳县| 桦川县| 东港市| 金华市| 饶河县| 枣阳市| 武安市| 金华市| 禄劝| 南华县| 海安县| 星子县| 白河县| 全椒县| 望城县| 丽江市| 宣武区|