国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

c語言中時間陷阱的實(shí)現(xiàn)

2019-11-17 05:43:28
字體:
供稿:網(wǎng)友

時間陷阱.它能是主程序的運(yùn)行和對事件的處理異步進(jìn)行.通過設(shè)置時間陷阱.可以在規(guī)定的時間間隔到達(dá)后自動執(zhí)行某個子程序.子程序運(yùn)行結(jié)束后又回到主程序的斷點(diǎn)處繼續(xù)執(zhí)行.basic語言提供了有關(guān)時間陷阱的語句.可以直接調(diào)用.但C語言沒有這樣的功能,為了能實(shí)現(xiàn)上述功能,這里給出了幾個子函數(shù)以幫助實(shí)現(xiàn).

#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);
}

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 富阳市| 德安县| 延边| 鹤庆县| 毕节市| 隆昌县| 云霄县| 耒阳市| 文山县| 吉木乃县| 黄骅市| 曲松县| 安龙县| 繁峙县| 望谟县| 河西区| 水城县| 达拉特旗| 甘肃省| 青浦区| 宝丰县| 黔西县| 贵定县| 塘沽区| 凤山市| 玉龙| 元朗区| 高密市| 滨州市| 潜山县| 连江县| 宁安市| 东至县| 甘洛县| 鄂州市| 逊克县| 饶阳县| 南木林县| 合山市| 长沙市| 陇南市|