Witam,
za pomocą którego przerwania mógłbym zastąpić funkcję delay z modułu crt?
Zapewne procedurą Sleep jeśli dobrze zrozumiałem; Mniej pytaj - więcej szukaj;
Nie do końca. Chodzi mi o ręczne stworzenie takiej procedury z wykorzystaniem przerwań. Potrzebuję nr funkcji i przerwania, które trwa przez określony czas, albo istniałaby możliwość podmienienia jego działania na podobny do sleep/delay.
Jaki system operacyjny?
Jeśli Windows, to przerwań się w nim w zasadzie nie używa (*).
Jeśli Linux, to eax=0xA2, int 0x80, więcej info na http://syscalls.kernelgrok.com/, szukać: sys_nanosleep
.
Jeśli FreeBSD, to eax=0xF0, int 0x80. To też jest nanosleep, tylko FreeBSD zdaje się przekazuje parametry na stosie, nie w rejestrach. Mogę się mylić.
(*) kiedyś syscalle pod Windows były na przerwaniu 2Fh, ale od Visty albo XP-ka począwszy, system używa specjalnej instrukcji sysenter
, która jest jakby dodatkowym przerwaniem. Ale lepiej w tym nie grzebać, jądro windowsa jest słabo publicznie udokumentowane.
Z Google http://rudy.mif.pg.gda.pl/~bogdro/dos/dos_int.htm
int 15h (część BIOS-u)
funkcja 86h - czekaj określoną liczbę milisekund: Argumenty: AH = 86h CX:DX = czas w milisekundach Zwraca: flaga CF=0, gdy nie wystąpił błąd; CF=1 po błędzie AH = status: 80h nieprawidłowa komenda (PC,PCjr) 83h funkcja już trwa 86h funkcja nie jest obsługiwana (XT)
kAzek, dzięki! Właśnie o to mi chodziło.