Консультация № 138439
29.05.2008, 09:44
0.00 руб.
0 1 1
Здравствуйте, объясните пожалуйста, можно ли пользоваться int 70h или int 4Ah для выполнения миллисекундных задержек (из-под Windows!!). Привожу код, сделанный под int 8 - все работает. А с этими возвращается ноль (преполагал увидеть 1000..1024).
А может еще какие варианты есть.
ЗНАЮ про ф-цию 86h int 15h: но она работает правильно только из-под "чистого" DOS. В том-то и проблема, что из-под Windows это не подходит - а мне именно это нужно.

Приложение:
CCC SEGMENTORG 100HBEGIN:;с 8-м прерыванием все замечательно - а вот 70h,4Ah,?? {ф-ция 6 int 1Ah}??; ########################################;перехватываем нужное прерывание mov ax,3508hint 21hmov word ptr Int_70h_vect,bxmov word ptr Int_70h_vect+2,es mov ax,2508hmov dx,offset Int_70_procint 21h;стартовую синхронизацию не стал делать;mov ah,2;int 1Ah;mov secund,dh;ждем изменения секундыnext:mov ah,2int 1Ahcmp secund,dhjz nextmov secund,dh;содержимое счетчика взяли и обнулили к следующему разуmov ax,scetmov scet,0;начинаем вывод содержимого счетчика на экранmov bx,10xor cx,cxnext2:xor dx,dxdiv bxinc cxpush dxor ax,axjnz next2vyv:pop axor ax,30hint 29hloop vyvmov al,0dhint 29hmov al,0Ahint 29h;выход на нажатие клавишиmov ah,1int 16hjz nextint 20hInt_70h_vect dd ?scet dw ?secund db ?Int_70_proc proc;здесь нарастает счетчикinc scetjmp dword ptr cs:[Int_70h_vect]Int_70_proc endp; #########################################CCC ENDSEND BEGIN

Обсуждение

давно
Советник
419
1011
29.05.2008, 13:25
общий
это ответ
Здравствуйте, Бартосик Феликс Михайлович!

Под windows есть точный мультимедийный таймер.
Используйте его.
Форма ответа