Ľudmila Jánošíková | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Programovanie v jazyku symbolických adries | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
pre 32-bitové procesory Intel | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Služby operačného systému MS-DOS
Z aplikačného programu môžeme k vstupným a výstupným zariadeniam pristupovať prostredníctvom služieb operačného systému. Služby operačného systému sú funkcie, ktoré sú súčasťou operačného systému, ale sú tiež dostupné z užívateľských programov. V tejto kapitole sa zameriame na operačný systém MS-DOS, poskytujúci 85 služieb. Každá služba má číslo, ktoré sa pred jej vyvolaním musí uložiť do registra AH. Služby majú definované vstupné a výstupné parametre. Vstupné parametre sa pred vyvolaním služby uložia do požadovaných registrov. Podobne v registroch odovzdáva služba výstupné parametre. Služba sa vyvolá inštrukciou int 21h. V tabuľke 9 sú uvedené najpoužívanejšie služby, s ktorými sa stretnete pri tvorbe aplikačných programov. Ostatné služby nájdete napr. v elektronickom manuáli TECH Help firmy Flambeaux Software.
Postup pri spracovaní súborov na disku je rovnaký ako v Pascale: ak chceme zo súboru čítať, musíme ho najprv otvoriť; ak chceme do súboru zapisovať, musíme buď vytvoriť nový súbor, alebo otvoriť existujúci súbor. Po ukončení práce so súborom ho musíme zatvoriť. Pri prvej operácii so súborom – vytvorení nového alebo otvorení existujúceho súboru – musíme ako vstupný parameter odovzdať službe DOS-u meno súboru. Služba pridelí súboru 16-bitové identifikačné číslo – popisovač (file handle). Musíme si ho zapamätať, pretože pri ďalších operáciách (čítaní, zápise, zatvorení) identifikujeme súbor pomocou tohto čísla, a nie jeho menom. Popisovač je analógiou pascalovskej prístupovej premennej k súboru. Meno súboru je tzv. ASCIIZ reťazec, t.j. reťazec ukončený nulou. Meno súboru môže obsahovať špecifikáciu disku a cestu k súboru, napr. File1 DB ’MOJ.ASM’,0File2 DB ’C:\USERS\JANOSIK\TEST.TXT’,0 Ďalším parametrom požadovaným pri vytvorení nového súboru sú atribúty súboru, ktoré sa odovzdávajú službe v registri CX. Atribúty súboru popisuje najnižších 6 bitov registra CX. Význam jednotlivých bitov je nasledujúci: bit 0: 1 = súbor len pre čítanie (read-only) bit 1: 1 = skrytý súbor (hidden) bit 2: 1 = systémový súbor (system) bit 3: 1 = nie je to súbor, ale názov média (volume label) bit 4: 1 = nie je to súbor, ale adresár (directory) bit 5: 1 = súbor sa bude archivovať (archive) Pre obyčajný súbor uložíme do CX nulu. Čítanie a zápis do súboru sa uskutočňuje cez buffer v pamäti. Buffer obsahuje údaje, ktoré sa načítali zo súboru alebo ktoré sa majú do súboru zapísať. Požadovaný počet prenášaných bajtov sa zadáva príslušnej službe ako vstupný parameter v registri CX. Skutočný počet prečítaných (zapísaných) bajtov vráti služba ako výstupný parameter v registri AX. Ak je pri čítaní AX < CX, znamená to, že sa dosiahol koniec súboru skôr, ako sa načítal požadovaný počet bajtov. Pri zápise do súboru to zase znamená, že disk je plný. Čítanie a zápis do súboru sa uskutočňuje od aktuálnej pozície interného ukazovateľa v súbore (file pointer). Po každom prečítanom (zapísanom) bajte sa pozícia ukazovateľa aktualizuje. Pozíciu ukazovateľa môžeme nastaviť aj priamo bez čítania alebo zápisu, a to službou 42h. Služba je popísaná v tab. 9, tu len spomenieme, že ak službu zavoláme s parametrami AL = 2, CX = 0, DX = 0, presunie sa ukazovateľ na koniec súboru a v DX:AX sa vráti dĺžka súboru. Ak budú vstupné parametre AL = 0, CX = 0, DX = 0, ukazovateľ sa presunie na začiatok súboru. Všetky služby pre prácu so súbormi používajú príznakový bit CF ako výstupný parameter, ktorý informuje volajúci program o tom, či sa služba vykonala bez chyby (CF sa nastaví na 0), alebo pri požadovanej operácii so súborom došlo ku chybe (CF sa nastaví na 1). Ak nastala chyba, obsahuje register AX kód chyby. Výstupné parametre v tab. 9 platia pre bezchybný priebeh operácie. |
Načo je vám jazyk symbolických adries?
Architektúra moderných procesorov Služby operačného systému MS-DOS Služby operačného systému Windows 95/98/NT/XP |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Vydala Žilinská univerzita v Žiline, 2000. ISBN 80-7100-723-4. Otázky a pripomienky môžete poslať autorke. Naposledy upravené 18.11.2011. |