Zastąpienie funkcji delay przerwaniem

0

Witam,
za pomocą którego przerwania mógłbym zastąpić funkcję delay z modułu crt?

0

Zapewne procedurą Sleep jeśli dobrze zrozumiałem; Mniej pytaj - więcej szukaj;

0

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.

0

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.

1

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)
0

kAzek, dzięki! Właśnie o to mi chodziło.

1 użytkowników online, w tym zalogowanych: 0, gości: 1