PROGRAS DOC


Ćwiczenie 1

Praca w sieci Novell

8)Programy użytkowe typu Menu

FILER-program do obsługi struktury katalogów,

PCONSOLE-wielofunkcyjny program do obsługi środowiska druku,

SESSION-program,który umożliwia definiowanie napędów sieciowych,przesyłanie komunikatów itd.

SYSCON-wielofunkcyjny program wykorzystywany przez administratora sieci.

WSGEN-program do generacji pliku IPX.COM.

9)Drukowanie

NPRINT -wydruk pliku tekstowego(bezpośrednio do kolejki),

CAPTURE -skierowanie danych wysyłanych do portu równoległego do kolejki wydruków.

Przykładowa składnia tych poleceń jest następująca:

NPRINT plik_tekstowy

CAPTURE /q Nazwa_drukarki

Dodatek B

Podstawowe komendy systemu Novell NetWare

CHKDIR[ścieżka do katalogu]

-podaje informacje na temat maksymalnego,wykorzystywanego miejsca na danym wolumenie w wytypowanym katalogu.

CHKDIR sys:system

CHKVOL[ścieżka do katalogu]

-wyświetla następujące informacje:

*nazwę serwera,na którym wolumen jest umieszczony,

*nazwę wolumenu,

*wielkość dostępnego obszaru pamięci,

*obszar zajęty przez zbiory,

*obszar dostępny dla użytkownika,itd.

HELP[nazwa komendy]

-informacja o oprogramowaniu systemu NetWare;

opis komend w języku angielskim.

LISTDIR[ścieżka][opcje]

-pokazuje strukturę katalogu,prawa dostępu,datę utworzenia podkatalogów.

Dostępne opcje to:

/s -listuje podkatalogi,

/r -podaje informacje o masce praw dziedziczonych,

/Data/Time -podaje datę i czas utworzenia katalogu,

/All -podaje wszystkie informacje,

LOGIN-to wiadomo

MAP-wyświetla definicje napędów,

MAP napęd:=[server][\wolumen:][katalog]-przyporządkowuje katalog do napędu,

MAP Sn:=server\wolumen:katalog-definiuje napęd wyszukiwania o nummerze n

RENDIR ścieżka [TO]nazwa_katalogu

-zmienia nazwę katalogu{aby używać tej komendy należy posiadać prawo Modify do katalogu,w którym znajduje się modyfikowany podkatalog}.

SEND”wiadomość”[TO]opcje

-przesyła wiadomość do wybranych obiektów.

TLIST[ścieżka][użytkownik grupy]

-wyświetla dysponentów katalogu i ich prawa.

WHOAMI[server][/opcje...]

-wyświetla następujące informacje o użytkowniku:

*nazwy użytkownika aktualni pracującego w sieci,

*nazwy stacji obsługi zbiorów do której użytkownik został zgłoszony,

*wersja stacji obsługi zbioprów,

*data i czas zgłoszenia,

*przawa efektywne,

*grupy do których należy użytkownik.

Przerwania sprzętowe BIOS-u

Programy zmiany obsługi przerwania

INT 0-7H przerwania związane z mikroprocesorem

INT 8-FH przerwania sprzętowe

INT 10H-1FH przerwania programowe,realizujące wywołanie procedur podstawowej wersji BIOS

INT 20H-3FH przerwania programowe wykorzystywane przez funkcje MS-DOS

INT 40H-41H,46H przerwania związane z pamięciami dyskowymi

INT 42H przerwanie wykorzystywane przez kartę EGA

INT 43H wskaźnik parametrów inicjujących

Ponieważ wektory przerwań są zlokalizowane w pamięci RAM,w sposób dosyć prosty można zrealizować zamianę obsługi przerwania umieszczając odpowiedni program w dowolnym miejscu pamięci operacyjnej i zmieniając adres w tablicy wektorów przerwań.

2)Lista ważniejszych przerwań BIOS-u.

INT 10H-obsługa ekranu monitora

funkcje:

(realizowana funkcja jest określona zawartością rejestru AH,we-określamy parametry wejściowe ,wy-parametry wyjściowe);

AH=0H wybór trybu pracy monitora;

we: AL=0 tekst 40*25 mono;

AL=1 tekst 40*25 kolor;

AL=2 tekst 80*25 mono;

AL=3 tekst 80*25 kolor CGA;

AL=4 grafika 320*200 kolor;

AL=5 grafika 320*200 mono;

AL=6 grafika 640*200 mono;

AL=7 tekst 80*25 mono,Herc;

Al=16 grafika 640*350 16 kolorów,EGA;

AL=19 grafika 320*200 256 kolorów,MCGA;

AH=1h ustaw kształt kursora;

we:CH(bity 0-4)linia początku kursora;

CL(bity 0-4)linia końca kursora;

CH(bit 5=1)kursor niewidoczny;

CL(bit 6=1)p[rzyspieszone migotanie;

AH=2h ustaw pozycję kursora;

we:DH wiersz(0-24);

DL kolumna(0-39/79);

BH strona(0-tryb graficzny)

AH=3h czytaj pozycję kursora;

we:BH strona(0-tryb graficzny);

wy:DH wiersz (0-42)

DL kolumna(0-39/79);

CX rozmiary kursora;

AH=5h ustaw stronę w trybie tekstowym;

we:AL numer strony(0-7 dla trybów 0,1 lub 0-3 dla trybów 2,3);

AH=6h przewiń aktywną stronę w górę;

we:AL liczba linii;(AL=0 czyść całe okno);

CH wiersz górnego lewego narożnika;

CL kolumna górnego lewego narożnika;

DH wiersz dolnego prawego narożnika;

DL kolumna dolnego prawego narożnika;

BH atrybut spacjowania;

AH=8h czytaj znak i atrybut z pozycji kursora;

we:BH numer strony;

wy:AL znak;

AH atrybut(kolor)znaku(1..15);128-migotanie;

AH=9h pisz znak z atrybutem na pozycji kursora;

we:BH numer strony;

wy:CX liczba znaków;

AL znak;

BL atrybut(kolor) znaku;BL=(bit 7=1) ustaw kolor XOR z kolorem aktywnym;

AH=Fh czytaj aktualny status video;

wy:AL tryb video(podobnie jak AH=0h);

AH liczba kolumn znakowych na ekranie;

BH numer aktywnej strony;

INT 11h(17) konfiguracja sprzętowa komputera;

wy:AX (bity 15,14)liczba drukarek(maksymalnie 3);

AX (bit 12) czy istnieje port gier;

AX (bity 11-9) liczba portów RS 232(maks. 7);

AX (bity 7,6) liczba napędów dysków elastycznych;

AX (bity 5,4) tryb video ustalony po inicjalizacji;

AX (bit 1) koprocesor arytmetyczny;

AX (bit 0) start systemu z dyskietki;

INT 12h ustalenie rozmiaru pamięci RAM;

wy AX liczba ciągłych bloków 16 KB pamięci;

INT 16h(22) obsługa klawiatury;

AH=0h czytaj znak z bufora klawiatury-czekaj na klawisze;

wy: AL kod znaku(ASC2);

AH rozszerzony kod klawiatury(jeżeli w AL=0);

AH=1h test obecności znaku w buforze klawiatury;

wy:ZF=1 bufor pusty;

ZF=0 znak przekazany do AX ale pozostaje w buforze;

AH=2h czytaj status klawiszy kontrolnych;

wy: AL kody klawiszy;

80h Ins;

40h Caps Lock;

20h Num Lock;

10h Scroll Lock;

8h Alt;

4h Ctrl;

2h Left Shift;

INT 17h(23) obsługa drukarki;

AH=0 drukuj znak;

we:AL znak;

DX numer portu drukarki;

wy: AH status;

AH (bit 0=1) zbyt długi czas oczekiwania;

(bit 3=1) błąd wejścia wyjścia;

(bit 4=1) drukarka wybrtana;

(bit 5=1) brak papieru;

(bit 6=1) potwierdzenie przyjęcia znaku;

(bit 7=1) drukarka nie ajęta;

Ah=1h inicjalizacja drukarki;

we:DX numer drukarki;

wy:AH status drukarki;

AH=2h czytaj status drukarki;

we:DX numer drukarki;

wy:AX status;

INT 1Ah(26)zegar i data systemowa;

AH=0h czytaj stan zegara;

wy:CX starsza część licznika;

DX młodsza część licznika;

AL=0 ostatni odczyt był w ciągu 24 godzin;

AH=1h ustaw zegar;

we:CX starsza część licznika;

DX młodsza część licznika.

3)Wykorzystanie przerwań z poziomu tp;

Intr(numer,Reg)-procedura powodująca wykonanie przerwania programowego o numerze,po uprzednim załadowaniu rejestrów procesora danymi zawartymi w polacz rekordu Reg;

GetIntVec(numer,Vec)-procedura umożliwiająca zapamiętanie wektora przerwań;

SetIntVec(numer,Vec)-procedura wykorzystywana do zmiany wektora przerwań.Zamienia ona wektor przerwań o numerze numer na wskazanie Vec.Wskazanie Vec jest to identyfikator nowej procedury obsługi przerwania numer poprzedzony operatorem @.

Program taki powinien składać się z kilku charakterystycznych fraz:

-zadeklarowanie mmodułu DOS;

-zadeklarowanie zmiennej typu registers;

-załadowania rejestrów procesora;

-wywołania przerwania programowego.

Przykładowy wydruk programu wykorzystującego 10h przerwanie ekranowe przedstawiony został poniżej.Program ten powoduje przewinięcie części ekranu wypełniając go uprzednio symbolami'**'.

Program CW2;

uses Crt,Dos;

var Reg:registers;

i:integer;

Procedure Ekran;

{przewijanie ekranu}

begin Witch Reg do

begin

AH:=$6;

AL:=$9;

CH:=$0;

BH:=$1;

CL:=$5;

DH:=$10;

DL:=$29;

intr($10,Reg);

end;

end;

end;

Begin

clrscr;

For i:=0 to 1000 do write(`**');

delay(2000)

ekran;

repeat until keypressed;

end.

4)Wymiana programu obsługi przerwania i program rezydentny.

Do podmiany programu obsługi przerwania służą dwie standardowe procedury wymienione w punkcie 3.W programie ,który podmienia obsługę przerwania powinniśmy działać w/g następującego algorytmu:

-deklaracja dyrektywy kompilatora{$M,roz1,roz2}

-deklaracja modułu Dos;

-deklaracja zmiennej wskaźnikowej typu pointer;

-procedura zastępująca program obsługi wybranego przerwania(poprzedzona dyrektywą kompilatora{$F+} a zakończona {$F-});

-pobranie i zapamiętanie wektora przerwania pod zmienną wskaźnikową,procedura GetIncVec;

-zmiana wektora przerwań procedura SetIntVec;

-pętla lub opóźnienie działania programu;

-zmiana wektora przerwań na pierwotny,procedura SetIncVec;

Program rezydentny to taki program,który pozostaje w pamięci komputera,tzn. po zakończeniu działanie zostaje on zachowany w pamięci łącznie z segmentem danych,stosu i segmentem przeznaczonym na zmienne dynamiczne.Aby uczynić program rezydentnym( z poziomu TP)należy użyć procedury keep(code) pod koniec programu.

Poniżej został przedstawiony przykład programu rezydentnego podmieniający przerwanie piąte BIOS'u(PtrScr) i umieszczający zawartość pamięci ekranu w pliku.

{$M 1024,0,0}

uses dos;

s:string;

wa,i:word;

pr:boolean;

{$F+}

procedure ps;

interrupt;

begin

if pr then exit;

pr:-true;

str(i,s);

assign(f,'text'+s+'.mem');

rewrite(f,1);

blockwrite(f,mem[wa:0],4000);

close(f);

i:=i+1;

pr:=false;

end;{$F-)

begin

i:=0;

pr:false;

if mem[$0:$449]=7 then wa:=$b000 else wa:=$b800;

setintvec(5,@ps);

keep(0);

end.

Ćwiczenienie 3.

Przerwania systemowe DOS-u

1)Procedury systemowe Ms-Dos;

Wszystkie uniwersalne funkcje systemowe są wywoływane za pośrednictwem przerwania INT 21h(33).Poszczególne funkcje są rozróżniane za pomocą numeru umieszczonego w rejestrze AH przed ich wywołaniem.

2)Najważniejsze funkcje przerwania 21h

Poszczególne funkcje przerwania 21h wywołujemy umieszczając w rejestrze AH odpowiednią liczbę będącą numerem funkcji.Poniżej przedstawione są niektóre z nich:

01h-pobranie znaku z klawiatury;

wy:AL-znak uzyskany ze standardowego wejścia-CON,znaki rozszerzone uzyskuje się po otrzymaniu AL=0 i ponownym wywołaniu przerwania tą funkcją;

02h-wysłanie znaku na monitor;

we:DL-znak do wysłania na standardowe wyjście;

05h-wysłanie znaku na port drukarki(PRN);

we: DL-znak do wysłnia ze standardowego portu drukarkowego LPT1;

09h-wysłanie napisu na monitor;

we: DS:DX-adres napisu zakończonego znakiem `$';

0ch-czyszczenie bufora klawiatury;

we:AL-wpisujemy tu numer funkcji,która ma zostać wywołana po czyszczeniu bufora klawiatury;(dostępne funkcje :1,6,7,8,0ah);

0Eh-ustaw aktualny dysk dla DOS-a;

we:DL-numer dysku który Dos ma przyjąć za aktualny;

(0=a,1=B,..);

wy:AL-liczba dysków dostępnych w systemie;

19h-pobierz numer aktualnego dysku;

wy:AL -aktualny numer dysku DOS-a;(tak jak w funkcji 0Eh);

2Ah-pobierz datę systemową;

wy:AL-dzień tygodnia(0=NIE,1=Pon,...6=Sob);

CX-rok(1980-2099);

DH-miesiąc(1-12);

DL-dszień(1-31);

2Bh-ustaw datę systemową;

we:tak jak w funkcji 2Ah;

wy:AL-wynik operacji(0-poprawnie,FFh-błeędnie);

2Ch-pobierz czas systemowy;

wy:CH-godzina (0-23);

CL-minuta(0-59);

2Dh-ustaw czas systemowy;

we:tak jak dla funkcji 2Ch;

wy:tak jak dla funkcji 2Bh;

30h-pobierz wersję DOS-a;

AH-poboczny numer wersji DOS-a;

31h-utwórz procedurę rezydentną;

we:AL-kod zakończenia (0-normalnie);

DX-rozmiar pamięci w 16 bajtowych paragrafach na procedurę rezydentną;

36h-wolne miejsce na dysku;

we:DL-numer dysku;(0=aktualny,1=A,..);

wy:AX-liczba sektorów bloku;

BX-liczba dostępnych bloków(clusters);

DX-całkowita liczba bloków;

CX-liczba bajtów na sektor;{wolne miejsce na dysku AX*BX*CX};

39h-utwórz katalog;

we:DS:DX-adres nazwy nowego katalogu;(ASC2Z);

wy:AX-kod błędu w/g Dos;

3Ah-usuń katalog;

we:DS:DX-podobnie jak funkcja 39h;

wy:AX-podobnie jak funkcja 39h;

3Ch-utwórz plik(create file);

we:DS:DX-adres nazwy nowego pliku(ASC2Z);

CX-atrybut pliku;

bit 0=1 tylko do czytania;

bit 1=1 plik ukryty(hidden);

bit 2=1 plik systemowy(system);

bit 3=1 katalog podstawowy;

bit 4=1 podkatalog;

bit 5=1 plik archiwum;

wy:AX-kod błędu Dos-a;

3Dh-otwórz plik(open file);

we:DS:DX-adres nazwy pliku(ASC2Z);

AL tryb otwarcia pliku;

bit 7=1

na razie wystarczy;

3)Procedury i funcje modułu DOS wykorzystywane w programach zawierających przerwanie 21h MS-DOS-a.

Standardowy modół DOS języka tp zawiera szereg procedur i funkcji umożliwiających łatwy dostęp do procedur obsługi przerwań programowych systemu MS-DOS.Są to oprócz procedur wymienionych w Cwiczeniu 2 m.in.

MsDos(reg)-wykonanie przerwania programowego o numerze $21 po uprzednim załadowaniu rejestrów procesora danymi zawartymi w polach rekordu reg.

Ofs(x)-funkcja tworząca daną typu word o wartości równej przemiszczeniu w segmencie obiektu reprezentowanego przez argument funkcji (argumentem funkcji Ofs jest nazwa zmiennej lub identyfikator podprogramu).

Seg(x)-funkcja tworząca daną typu word o wartości równej numerowi segmentu,w którym znajduje się obiekt reprezentowany przez argument funkcji.

Poniżej przedstawiony jest krótki program wyprowadzający napis na ekran monitora wykorzystując funkcję $9 przerwania INT 21h;

program start;

uses crt,dos;

var Reg:registers;

const name:string[5]=`abcd$';

begin

clrscr;

Reg.DS:=DSeg;

Reg.DX:=Ofs(name)+1;

Reg.AH:=$9;

MsDos(Reg);

end.

Ćwiczenie 4

Elementy ęzyka ASSEMBLER

1.assembler

Podobnie jak języki wyższego poziomu asemmbler jest zestawem słów mówiących komputerowi co ma wykonywać.Jednak słowa z zaestawu komend asemblera odnoszą się bezpośrednio do elementów kommputera . Programy asemblerowe dostarczają komputerowi szczegółowych informacji takich jak :

-załadój liczbę 49 do rejestru AX;

-przenieś zawartość rejestru CL do DL;

-porównaj zawartość rejestru AX z ze stałą DELTA.

Jak widać z powyższego przykładu w języku asemblera posługujemy się szczegółami uwzględniającymi budowę komputera.Chociaż napisanie programu w asemblerze zajmuje więcej czasu i wymaga więcej wysiłku od piszącego to je4dnak te programy wykonują się znacznie szybciej.

2.Elementy budowy mikroprocesora

Wewnątrz mikroprocesora informacje przechowywane są w grupie 16-bitowych komórek nazywanych rejestrami (registers).Jest 14 rejestrów:12 rejestrów danych i adresowych oraz rejestr wskaźnika instrukcji(instruction pointer) i rejestr znaczników (status lub flags).Grupę 12 rejestrów danych i adresowych można podzielić na trzy grupy po cztery rejestry:

-danych;

-wskaźnikowe i indeksowe;

-segmentowe;

Rejestry segmentowe związane są ze sposobem podziału programu w pamięci wymaganej przez procesor(segmentacja).

3)Segmentacja

Dla procesorów z rodziny Intel x86 odwo/łanie się do komórki pamięci wymaga dwóch elementów składowych adresu,adresu segmentu i przesunięcia (ofset).Powodem takiego sposobu adresowania jest wymaganie przechowywania w różnych segmentach instrukcji i danych programu.Segment może osiągać do 64 KB wielkości.Rozróżniamy 4 rodzaje segmentów:

-segment kodu;

-segment stosu;

-segment danych;

-segment dodatkowy.

4)Adresacja

Kiedy mikroprocesor otrzyma adres segmentu i przesunięcie w segmencie (offset) tworzy jeden 20-bitowy adres.Wykonuje to poprzez dodanie 16-bitowego przesunięcia do zawartości rejestru segmentu pomnożonej przez 16.

Adres fizyczny=Przesunięcie+(16xRejestr segmentu)

W rzeczywistości mikroprocesor przeprowadza tę operację w ten sposób,że używa rejestru segmentu tak jakby miał na końcu cztery dodatkowe bity zerow(rys 1).

5) Przerwania

Mikroprocesor nie wykonuje tylko programów.Będąc naczelnym sterownikie systemu związany jest bezpośrednio lub pośrednio ze wszystkim co dzieje się w komputerze.Zajmuje się m in. obsługą klawiatury,stacji dysków itd.W rzeczywistości mikroprocesor i urządzenia zewnętrzne komunikują się w bardzo efektywny sposób.Wygląda to tak : mikroprocesor wykonuje program np. Dos,Pascal itp. do momentu aż urządzenia zewnętrzne nie zgłoszą zapotrzebowania na wykonanie obsługi.Takie zgłoszenie zapotrzebowania nazywany przerwaniem.

Przerwania mają różne formy lecz dla mikroprocesorów x86 wygląda to następująco:gdy urządzenie wysyła sygnał przerwania ,wysyłany jest również sygnał identyfikujący(kod) mówiący procesorowi,które urządzenie domaga się obsługi.Mikroprocesor jest w stanie rozpoznać 256 kodów.W sytuacji kiedy procesor wykonuje coś co można przerwać robi zapis o bieżącej pracy(aby wiedzieć gdzie podjąć ją na nowo),po czym pobiera kod .Następnie używa tego kodu do obliczenia adresu na początku pamięci .Na podstawie obliczonego adresu czyta drugi adres.Ten drugi adres nazywany wektorem przerwań jest adresem programu obsługi tego przerwania .Dla standardowych urządzeń zewnętrznych programy obsługi przerwań są powszechnie przechowywane w pamięci ROM-(w wielu kompóterach nazywamy to BIOS-em).Po wykonaniu obsługi urządzenia mikroprocesor wraca korzystając z zapisu danych przed wykonaniem przerwania,aby kontynuować przerwaną pracę(patrz DODATEK A).

6)Rodzaje adresacji

Mikroprocesory rodziny x86 dostarczają kilku sposobów adresacji (dostępu do danych).Dostęp ten można realizować



Wyszukiwarka

Podobne podstrony:
Wyłączanie asystenta zgodności programów, DOC
PROGRA~2 DOC
PROGRA~1 DOC
”T16 Pao Kubera Bożena Nowoczesne Technologie informatyczne wsparciem systemow logistycznych program
BIOS 3 opis programu doc
NA CO ZWRÓCIĆ UWAGĘ CZYTAJĄC PODSTAWĘ PROGRAMOWĄ doc
SMC Program v 3 0 1 doc
jak korystać z programu doc
Program szkolenia inspektora ppoż, Szkolenia-inne z bhp, Szkolenia-Różne-DOC
ufo i program atomowy, DOC
Szkol Program szkolenia okresowego biurowych, BHP, Szkolenie-Okresowe-DOC
Program szkolenia okresowego robotników, BHP, Szkolenie-Okresowe-DOC
Szkol Okres-Program szk. biura, BHP, Szkolenie-Okresowe-DOC
program I III doc
Program szkolenia okresowego kierowników, BHP, Szkolenie-Okresowe-DOC
Opis zawodu Redaktor programowy, Opis-stanowiska-pracy-DOC
Program szkolenia technika bhp, Szkolenia-inne z bhp, Szkolenia-Różne-DOC
Program NSDAP, DOC

więcej podobnych podstron