plik


ASK - PYTANIA NA KOAO I A) Podstawowe zasady dziaBania komputera. 1) Omwi koncepcj programu w modelu komputera wg von Neumanna. Rozkazy Urzdzenia wej[cia/wyj[cia Dane Jednostka Pami sterujca Jednostka arytm.  logiczna Procesor Procesor skBada si z wielu r|nych podzespoBw, ktre wykonuj okre[lone dziaBania, np. sumowanie liczb, wskutek otrzymania sygnaBw z innych moduBw. Zatem realizacja przetwarzania w procesorze (np. wykonanie jakiego[ obliczenia) wymaga skierowania do tych podzespoBw odpowiednich sygnaBw. A|eby byBo to mo|liwe, program (w sensie modelu von Neumanna) musi by przeksztaBcony na poprawn sekwencj sygnaBw, oddziaBywujcych na sprzt. Program ten musi by bezpo[rednio dostpny, tak by niezwBocznie po zakoDczeniu jednej operacji mo|na byBo zacz nastpn. Oznacza to, |e program musi by przechowywany w pamici [ci[le wspBdziaBajcej z procesorem. Wynikaj z tego od razu dwa wnioski: -pami wspBpracujca z procesorem musi by dostatecznie szybka, tak by oczekiwanie na odczytanie potrzebnych informacji nie powodowaBo przestojw w pracy procesora; -poniewa| wszelkie przetwarzane informacje maj charakter binarny, wic tak|e program przechowywany w pamici musi by zakodowany w postaci binarnej. Sam program skBada si z cigu poleceD (przechowywanych w pamici operacyjnej), zakodowanych w sposb zrozumiaBy dla procesora. Ponadto wykonywany program mo|e si sam modyfikowa traktujc obszar instrukcji jako dane, a po przetworzeniu tych instrukcji - danych - zacz je wykonywa. 2) Wyja[ni znaczenie terminu  lista rozkazw procesora . A|eby upro[ci programowanie, przyjto pewien podstawowy zbir operacji (dla konkretnego typu procesora) i ka|dej operacji przypisano ustalony kod w postaci cigu zerojedynkowego. Do zbioru operacji podstawowych nale| zazwyczaj cztery dziaBania arytmetyczne, operacje logiczne na bitach (negacja, suma logiczna, iloczyn logiczny), operacje przesyBania, operacje porwnywania i wiele innych. W takim ujciu zadaniem ukBadu sterowania procesora po odczytaniu takiego cigu jest wygenerowanie odpowiedniej sekwencji sygnaBw do poszczeglnych podzespoBw, tak by w rezultacie wykona wymagan operacj (np. dodawanie). Operacje zdefiniowane w zbiorze podstawowym nazywane s rozkazami lub instrukcjami procesora. Podstawowy zbir operacji procesora jest zwykle nazywany list rozkazw procesora. 3) Na czym polega r|nica midzy pamici fizyczn i pamici wirtualn w komputerze? Pami fizyczna Rozkazy (instrukcje) programu odczytujce dane z pamici operacyjnej (czy te| zapisujce wyniki) zawieraj informacje o poBo|eniu danej w pamici, czyli zawieraj adres danej; w wielu procesorach adres ten ma posta adresu fizycznego, czyli wskazuje jednoznacznie fizyczn komrk pamici, gdzie znajduje si potrzebna dana; w trakcie operacji odczytu adres fizyczny kierowany do ukBadw pamici poprzez linie adresowe, a [lad za tym ukBady pamici odczytuj i odsyBaj potrzebn dan. Pami wirtua1na Pami operacyjna komputera w ksztaBcie widzianym przez programist. Jest pewn iluzj pamici rzeczywistej (fizycznej). Pozwala na odseparowanie pamici logicznej u|ytkownika od pamici fizycznej. -mo|na jedynie cz[ programu zaBadowa do pamici w celu wykonania; -logiczna przestrzeD adresowa procesu mo|e dlatego by znacznie wiksza ni| fizyczna przestrzeD adresowa; -potrzeba wymiany stron midzy dyskiem a pamici. 4) Jak rol w trakcie wykonywania programu przez procesor peBni wskaznik instrukcji (liczik rozkazw)? Proces pobierania kolejnych instrukcji z pamici operacyjnej i ich wykonywania musi by precyzyjnie zorganizowany, tak by natychmiast po wykonaniu kolejnej instrukcji procesor pobieraB z pamici nastpn; aby pobra t instrukcj, procesor musi oczywi[cie zna jej poBo|enie w pamici operacyjnej  informacje o poBo|eniu kolejnej instrukcji s umieszczone w specjalnym rejestrze, nazywanym wskaznikiem instrukcji; 3l l5 7 o EIP IP W architekturze IA 32 wskaznik instrukcji jest rejestrem 32-bitowym oznaczonym symbolem EIP. 5) Omwi klas instrukcji procesora, ktre maj zdolno[ do zmiany naturalnego porzdku wykonywania rozkazw. Instrukcje sterujce warunkowe na ogB nie wykonuj |adnych obliczeD, ale tylko sprawdzaj, czy uzyskane wyniki maj oczekiwane wBasno[ci. W zale|no[ci od rezultatu sprawdzenia wykonywanie programu mo|e by kontynuowane przy zachowaniu naturalnego porzdku instrukcji albo te| porzdek ten mo|e by zignorowany poprzez przej[cie do wykonywania instrukcji znajdujcej si w odlegBym miejscu pamici operacyjnej. Istniej te| instrukcje sterujce zwane bezwarunkowymi, ktrych jedynym zadaniem jest zmiana porzdku wykonywania instrukcji (nie wykonuj one |adnego sprawdzenia). W architekturze IA 32 rozmaite instrukcje sterujce testuj zawarto[ pojedynczych bitw w rejestrze znacznikw, a niekiedy obliczaj pewne wyra|enia logiczne okre[lone na tych bitach. Dla ka|dej instrukcji sterujcej (warunkowej) okre[lono testowany warunek, np. dla instrukcji sterujcej: jz warunek jest speBniony, gdy znacznik ZF = 1; jnz warunek jest speBniony, gdy znacznik ZF = 0; ja warunek jest speBniony, gdy znaczniki CF = 0 i ZF = 0. W zale|no[ci od tego czy warunek jest speBniony czy nie, do wskaznika instrukcji EIP wpisywane s inne warto[ci, jak podano poni|ej; Obliczanie EIP przez instrukcje sterujce: 1. gdy testowany warunek jest speBniony: EIP ! EIP + <liczba bajtw aktualnie wykonywanej instrukcji> + <zawarto[ pola adresowego instrukcji> 2. gdy testowany warunek nie jest speBniony: EIP ! EIP + <liczba bajtw aktualnie wykonywanej instrukcji> 6) Omwi funkcje znacznikw CF i ZF w  rejestrze znacznikw . W trakcie wykonywania niektrych instrukcji (rozkazw) ustawiane s rwnie| znaczniki (rejestry jednobitowe)  znaczniki te, zebrane razem, tworz 32-bitowy rejestr znacznikw EF (lub EFLAGS) o strukturze podanej na rysunku: 31 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ID VIPVIFAC VM RF 0 NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 1 CF CF (ang. carry) znacznik przeniesienia - do znacznika tego wpisywane jest przeniesienie (po|yczka) z najbardziej znaczcego bitu; znacznik u|ywany jest do sygnalizacji nadmiaru w operacjach na liczbach bez znaku; ZF (ang. zero) znacznik zera - znacznik ten ustawiany jest w stan 1, gdy wynik operacji arytmetycznej lub logicznej jest rwny 0 i zerowany w przypadku przeciwnym; 7) Omwi podstawowe elementy architektury koprocesora arytmetycznego. Koprocesor arytmetyczny stanowi odrbny procesor, wspBdziaBajcy z procesorem gBwnym, i w przypadku Pentiuma znajdujcy si w tej samej obudowie; liczby, na ktrych wykonywane s obliczenia, skBadowane s w 8 rejestrach 80-bitowych tworzcych stos; rozkazy koprocesora adresuj rejestry stosu nie bezpo[rednio, ale wzgldem wierzchoBka stosu; w kodzie asemblerowym rejestr znajdujcy si na wierzchoBku stosu oznaczany jest ST(0) lub ST, a dalsze ST(1), ST(2),..., ST(7); ze wzgldu na specyficzny sposb adresowania koprocesor arytmetyczny zaliczany jest do procesorw o architekturze stosowej; mechanizmy stosu rejestrw koprocesora s analogiczne do mechanizmw stosu w procesorze (m.in. stos ro[nie w kierunku malejcych numerw rejestrw); lista rozkazw koprocesora arytmetycznego zawiera rozkazy wykonujce dziaBania na liczbach zmiennoprzecinkowych, w tym rozkazy przesBania, dziaBania arytmetyczne, obliczanie pierwiastka kwadratowego, funkcji trygonometrycznych (sin, cos, tg, arc tg), wykBadniczych i logarytmicznych; B) Kodowanie danych i instrukcji. 1) Omwi r|ne rodzaje kodowania liczb binarnych w komputerze. Kodowanie liczb caBkowitych: W przypadku liczb bez znaku stosowany jest naturalny kod binarny, warto[ liczby okre[la m-1 , gdzie m oznacza liczb bitw rejestru lub komrki pamici. w = "2i "xi i=0 W przypadku liczb ze znakiem, kodowanych w systemie U2, warto[ liczby okre[la formuBa: m-2 w = -xm-1 "2m-1 + "2i , gdzie m oznacza liczb bitw rejestru lub komrki pamici. "xi i=0 W przypadku kodowania w systemie BCD, ka|dy upakowany bajt zawiera dwie cyfry dziesitne, za to nie upakowany bajt zawiera jedn cyfr dziesitn (4 starsze bity s wyzerowane). Liczby zmiennoprzecinkowe kodujemy za pomoc mantysy i wykBadnika. mantysa * 2 ^ wykBadnik, gdzie: warto[ bezwzgldna mantysy nale|y do przedziaBu [1, 2). Podane wyra|enie w rea1izacjach komputerowych ma nieco inna posta. 2) Poda w przybli|eniu zakresy liczb, ktre mog by kodowane w postaci binarnej jako liczby bez znaku na 16 lub 32 bitach. liczby 16-bitowe <0, 65535> liczby 32-bitowe <0, 4 294 967 295> 3) W jaki sposb w procesorach z IA-32 sygnalizowane jest wystpienie nadmiaru w operacjach dodawania, odejmowania? Dodawanie  ustawiane s znaczniki OF ( liczby ze znakiem) lub CF (liczby bez znaku) Odejmowanie  ustawiane s znaczniki OF (liczby ze znakiem) lub CF (liczby bez znaku) 4) Przedstawi w postaci graficznej schemat konwersji liczb 32-bitowych zapisanych w pamici wg reguBy mniejsze ni|ej na posta mniejsze wy|ej. W produkowanych obecnie procesorach stosuje si dwa podstawowe schematy rozmieszczenia poszczeglnych bajtw liczb w pamici: mniejsze ni|ej (ang. little endian) i mniejsze wy|ej (ang. big endian); Do konwersji liczby zapisanej w formacie mniejsze ni|ej na format mniejsze wy|ej (i odwrotnie) mo|na zastosowa rozkaz BSWAP 31 24 23 16 15 8 7 0 Rejestr 32-bitowy 5) Omwi technik porwnywania liczb staBoprzecinkowych stosowan w procesorach z IA- 32. CMP  instrukcja porwnujca ustawia znaczniki ZF i CF, ale nigdzie nie zapisuje wyniku operacji (odejmowanie). Porwnanie (CMP bx, cx): Je|eli liczba w bx = cx to ZF=1 i CF=0 Je|eli liczba w bx > cx to ZF=0 i CF=0 Je|eli liczba w bx < cx to ZF=0 i CF=1 Dla liczb ze znakiem sprawdza si zawarto[ znacznikw ZF, OF, SF; Dla liczb bez znaku sprawdza si zawarto[ znacznikw ZF i CF za pomoc instrukcji bitowych. 6) Dlaczego obliczenia na liczbach staBoprzecinkowych s kBopotliwe je[li dziaBania wykonywane s na warto[ciach bardzo du|ych i bardzo maBych? PrzykBadowo, mo|na przyj format kodowania podany na poni|szym rysunku: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 -1 -2 -3 -4 -5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 bit znaku Podany wy|ej sposb kodowania jest kBopotliwy w przypadku, gdy obliczenie wykonywane jest na liczbach bardzo du|ych i bardzo maBych, np. obliczenie staBej czasowej obwodu RC: R = 4.7 M&!, C = 68 pF RC=4.7"106"68"10-12 =3196"10-6 . Warto[ci R i C w postaci binarnej maj posta R = 01000111 10110111 01100000 C = 0.00000000 00000000 00000000 00000000 01001100 . . . . . z tego wzgldu obliczenia na liczbach niecaBkowitych wykonywane s zazwyczaj w arytmetyce zmiennoprzecinkowej (zmiennopozycyjnej); w architekturze IA-32 zdefiniowana jest znaczna liczba rozkazw wykonujcych dziaBania na liczbach zmiennoprzecinkowych przetwarzanych przez koprocesor arytmetyczny. 7) Co oznacza termin  warto[ci specjalne u|ywany w kontek[cie koprocesora arytmetycznego. S to liczby generowane w wyniku bBdu, nie mog by przedstawione w zwykBy sposb. Spo[rd dopuszczalnych warto[ci liczb wyBczono niektre i nadano im znaczenie specjalne. Takie liczby okre[lane s terminem warto[ci specjalne; warto[ci specjalne mog by argumentami obliczeD tak jak zwykBe liczby; je[li jeden z argumentw jest warto[ci specjaln, to wynik jest te| warto[ci specjaln  w wielu przypadkach obserwuje si propagacj warto[ci specjalnych. W koprocesorze arytmetycznym przyjto, |e wszystkie liczby, ktrych pole wykBadnika zawiera same zera lub same jedynki traktowane s jako warto[ci specjalne; W zale|no[ci od ustawienia bitw w rejestrze sterujcym koprocesora, wystpienie warto[ci specjalnej mo|e powodowa przerwanie (wyjtek koprocesora), albo te| obliczenia mog by kontynuowane. 8) Omwi format 32-bitowych liczb zmiennoprzecinkowych (pole mantysy zawiera 23 bity, pole wykBadnika zawiera 8 bitw) Liczby zmiennoprzecinkowe, nazywane te| zmiennopozycyjnymi, kodowane s w postaci pary liczb okre[lanych jako mantysa i wykBadnik; wykBadnik mantysa w przypadku oglnym warto[ liczby zmiennoprzecinkowej (r|nej od zera) okre[la wyra|enie: wykladnik mantysa " 2 Podane wyra|enie w realizacjach komputerowych ma zwykle nieco inn posta; Pole wykBadnika mo|na interpretowa jako liczb pozycji, o ktr trzeba przesun w lewo lub w prawo umown kropk rozdzielajc cz[ caBkowit i uBamkow mantysy; Zazwyczaj wprowadza si warunek normalizacji mantysy (dla liczb `" 0) 1 d" mantysa < 2 format 32-bitowy  liczby zapisane w tym formacie okre[lane s jako liczby zmiennoprzecinkowe krtkie (ang. single precision); format 32-bitowy wykB. mantysa S 8 bitw 23 bity W formacie 32-bitowym cz[ caBkowita mantysy wystpuje w postaci niejawnej; W formacie 32-bitowym mo|na kodowa liczby o warto[ciach do 3.37"1038 9) Omwi zasady wykonywania operacji arytmetycznych na staBoprzecinkowych liczbach wielokrotnej dBugo[ci. Dodawanie  realizowane jest przy u|yciu instrukcji ADD lub ADC. ADD dodaje do siebie dwa argumenty, a wynik umieszcza w pierwszym z nich. Je|eli wynik operacji nie mie[ci si w argumencie docelowym ustawiony zostanie znacznik przeniesienia CF. ADC sBu|y do dodawania liczb wielobajtowych. Pozwala w trakcie dodawania uwzgldni przeniesienie powstaBe w przypadku dodawania mBodszych bajtw. Instrukcje ADD i ADC ustawiaj znaczniki: " Nadmiaru OF (nadmiar przy dodawaniu) " Znaku SF (zgodnie ze znakiem) " Zera ZF (je|eli wynik operacji=0) " Parzysto[ci PF, gdy w wyniku jest parzysta liczba jedynek " Przeniesienia CF, gdy ustawiany jest najmBodszy bit argumentu " Przeniesienia pomocniczego AF Odejmowanie  polega na dodaniu do pierwszego argumentu drugiego w postaci U2. Funkcja SBB to odejmowanie dwch liczb z po|yczk (odejmowanie bardziej znaczcych sBw liczby wielobajtowej).Ustawiane s te same znaczniki, co w przypadku dodawania. Mno|enie  przy korzystaniu z instrukcji mno|enia MUL (dla liczb bez znaku) i IMUL (dla liczb ze znakiem) nale|y pamita, |e wynik umieszczany jest w dwch rejestrach. Dzielenie  instrukcje DIV i IDV, trzeba pamita ze rozmiar dzielnej powinien by 2 razy wikszy ni| dzielnik ( 32-bit dzielimy przez 16-bit). 10) Dlaczego w formatach liczb zmiennoprzecinkowych zgodnych z norm 754 nie wystpuje bit znaku wykBadnika? Przyjto norm IEEE 754, ktra zostaBa opracowana z my[l, aby uBatwi przenoszenie programw z jednego procesora do drugiego  okre[la ona specyficzne metody i procedury sBu|ce temu, aby arytmetyka zmiennoprzecinkowa dawaBa jednolite i przewidywalne wyniki, niezale|nie od platformy sprztowej; norma ta jest stosowana praktycznie we wszystkich wspBczesnych procesorach i koprocesorach arytmetycznych; Norma IEEE 754 okre[la te| standardowe formaty liczb zmiennoprzecinkowych; podstawowym formatem liczb jest format 64-bitowy; pokazano, |e uzyskiwanie dokBadnych wynikw 64-bitowych wymaga wykonywania niektrych obliczeD na liczbach 80-bitowych. Poniewa| nie ma jednoznaczno[ci wzgldem zera, gdyby byB znak mogliby[my zapisa +0 i -0, a poza tym dziki takiemu uBo|eniu dostajemy dodatkowo jedn liczb. 11) Jakie wady i zalety ma kodowanie znakw w systemie Unicode? Zalety: -mo|esz zakodowa 65536 znakw (co daje mo|liwo[ zakodowania wszystkich alfabetw [wiata;), nie wymaga dziki temu stron kodowych; - jest jednoznaczny i znormalizowany; - pozwala na pisanie w jednym dokumencie po angielsku chiDsku i po Bacinie; Wady: - jeden znak zajmuje 2 bajty przez co zajmuje to dwa razy wicej miejsca w pamici. C) Mechanizmy adresowania 1) Omwi podstawowe zasady modyfikacji adresowych Modyfikacje adresowe - polegaj na dodawaniu (sumowaniu) zawarto[ci rejestrw modyfikacji z polem adresowym rozkazu; adres lokacji pamici, na ktrej wykonywane jest dziaBanie okre[lony jest nie tylko poprzez pole adresowe instrukcji, ale zale|y rwnie| od zawarto[ci jednego lub dwch wskazanych rejestrw; W architekturze IA 32 dostpne s rozbudowane mechanizmy modyfikacji adresowych: " modyfikatorami mog by 16-bitowe rejestry oglnego przeznaczenia: BX, SI, DI, BP, a tak|e ich pary: (BX, SI), (BX, DI), (BP, SI), (BP, DI); " modyfikatorami mog by dowolne 32-bitowe rejestry oglnego przeznaczenia: EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP; " mo|e rwnie| wystpi drugi rejestr modyfikacji spo[rd ww., z wyBczeniem rejestru ESP; " drugi rejestr modyfikacji mo|e by skojarzony z tzw. wspBczynnikiem skali, ktry podawany jest w postaci "1, "2, "4, "8  podana liczba wskazuje przez ile zostanie pomno|ona zawarto[ drugiego rejestru modyfikacji podczas obliczania adresu; obliczanie adresu efektywnego w trybie 32- i 16-bitowym wg reguBy modulo 232 i 216 pozwala uzyskiwa adresy efektywne mniejsze ni| zawarto[ pola adresowego  odpowiednio du|e liczby umieszczone w rejestrze modyfikacji dziaBaj tak liczby ujemne; f& niekiedy pole adresowe instrukcji jest caBkowicie pominite, a warto[ adresu okre[lona jest wyBcznie poprzez wskazane rejestry modyfikacji; takie rozwizanie jest: " niezbdne, je[li adres lokacji pamici zostaje obliczony dopiero w trakcie wykonywania programu (nie jest znany ani w trakcie kodowania programu przez programist ani te| podczas translacji)  dotyczy to czsto kodu generowanego przez kompilatory jzykw wysokiego poziomu; " szczeglnie korzystne w przypadku wielokrotnego odwoBywania si do tej samej lokacji pamici  poniewa| pole adresowe nie wystpuje, wic instrukcja mo|e by zapisana na mniejszej liczbie bajtw (zwykle 2 bajty); Modyfikacja adresowa z u|yciem rejestru EBP dziaBa troch inaczej; rejestr ten zostaB bowiem zaprojektowany do wspomagania operacji przekazywania parametrw do procedur za po[rednictwem stosu  z tego wzgldu u|ycie ww. rejestrw jako modyfikatorw powoduje, |e operacja zostanie wykonana na danych zawartych w obszarze stosu; 2) Wyja[ni zasady adresowanie po[redniego. Modyfikacja po[rednia polega na wskazaniu komrki pamici, w ktrej znajduje si potrzebny adres; W architekturze IA-32 adresowanie po[rednie stosowane jest w instrukcjach sterujcych (skokowych). 007E2312H 007E2311H pole adresowe 007E2310H kod operacji 007E230CH 007E230FH 00H 007E230EH 7EH 007E230DH 23H 007E230CH 03H 007E230BH 007E230AH 007E2309H 007E2308H 007E2307H 007E2306H 007E2305H 007E2304H 007E2303H 007E2302H Adres 3) Jaka warto[ zostanie doprowadzona do rejestru DX po wykonaniu podanego ni|ej fragmentu programu? Dane3a SEGMENT Linie dw421,422,443,442,444,427,432 - - - - - - - - - - - - - - - - - polacz SEGMENT ASSUME cs:polacz , ds:dane3a - - - - - - - - - - - -- - - -- - -- -- - mov esi, OFFSET linie + 4 mov ebx, 4 mov dx, [ebx][esi] Odp. 442. D) Programowanie w asemblerze 1) Wyja[ni, na czym polega r|nica midzy jzykiem maszynowym a jzykiem asemblera. Algorytm, ktry jest zakodowany w postaci sekwencji cigw zerojedynkowych, ktre s zdefiniowane w podstawowym zbiorze operacji -> nazywamy programem w jzyku maszynowym. Program ten jest przechowywany w pamici, a samo wykonanie programu polega na przesBaniu kolejnych cigw zerojedynkowych z pamici gBwnej do ukBadu sterowania procesora. Po odczytaniu takiego cigu jest generowana odpowiednia sekwencja sygnaBw kierowana do poszczeglnych podzespoBw. Jzyk maszynowy jest generalnie trudny w u|yciu, znacznie wygodniejszy jest spokrewniony z nim ASEMBLER Zasadnicz r|nic midzy jzykiem maszynowym a jzykiem asemblera jest fakt, |e posBuguje si skrtem literowym, tzw. mnemonikiem, ktry zastpuje w ten sposb cig zer i jedynek; Kodowanie programu w asemblerze powinno pozwala na zapisywanie algorytmw za pomoc pojedynczych rozkazw procesora; tak|e definiowanie danych powinno by realizowane na poziomie pojedynczych bajtw lub sBw; 2) Omwi dyrektywy u|ywane do definiowania danych na poziomie asemblera. Dyrektywa nie jest instrukcj procesora, lecz poleceniem dla asemblera nakazujcym mu okre[lone dziaBanie lub sposb interpretacji okre[lonych instrukcji. Dyrektywy DB, DW, DD, DF, DQ, DT sBu| do deklarowania danych statycznych i dynamicznych w programie. DB  definiowanie bajtu (8 bitw), DW  definiowanie sBowa (16 bitw), DD  definiowanie sBowa o podwjnej dBugo[ci (32 bity), DF  definiowanie 6 bajtw (48 bitw); DQ  definiowanie sBowa poczwrnej dBugo[ci (64 bity), DT  definiowanie 10 bajtw (80 bitw). 3) Co oznacza znak  ? podany zamiast warto[ci danej w kodzie asemblerowym? Przyjte jest, |e po lewej stronie dyrektywy podaje si nazw zmiennej, a po prawej warto[ pocztkow; znak zapytania (?) oznacza, |e warto[ pocztkowa zmiennej jest nieokre[lona; nazw zmiennej mo|na pomin; przykBady: kcal DB 169 linia7a DQ ? DW -19331 elem_sygn DD 18B706H alfa dw 4567H, 5678H, 6789H 4) Dlaczego rozkaz add [edi], 3 jest traktowany przez asembler jako bBdny? Operandy instrukcji nie precyzuj, czy liczba 3 ma by zapisana na 8-miu bitach, 16-tu czy te| 32 - bitach. Aby tego bBdu unika nale|y sformuBowa ilo[ bajtw za pomoc instrukcji PTR: add byte PTR [edi], 3 add word PTR [edi], 3 add dword PTR [edi], 3 5) Jak nale|y rozumie termin  licznik lokacji w kontek[cie programu asemblerowego? W procesie asemblacji programw istotn rol odgrywa rejestr programowy (tj. definiowany przez asembler), zwany licznikiem lokacji; Licznik lokacji okre[la lokacj w pamici, do ktrej zostanie przesBany aktualnie tBumaczony rozkaz lub dana; po zaBadowaniu rozkazu lub danej, licznik lokacji zostaje zwikszony o ilo[ bajtw zajmowanych przez ten rozkaz lub dan; W asemblerach dla procesorw zgodnych z IA-32 licznik lokacji wskazuje poBo|enie Badowanej lokacji wzgldem pocztku segmentu; w trakcie tBumaczenia pierwszego wiersza segmentu licznik lokacji zawiera 0; w wyra|eniach adresowych licznik lokacji reprezentowany jest przez symbol $; 6) Jakie dziaBania wykonuje asembler w pierwszym i drugim przebiegu asemblacji? W istocie zarwno asemblacja jak i kompilacja maj na celu przeksztaBcenie kodu zrdBowego programu na cig instrukcji procesora, aczkolwiek uzyskany cig (zawarty w pliku z rozszerzeniem .OBJ) wymaga jeszcze dalszych przeksztaBceD, ktre wykonywane s w trakcie konsolidacji i Badowania; Asemblacja realizowana jest dwuprzebiegowo: w ka|dym przebiegu czytany jest caBy plik zrdBowy ([ci[le: moduB) od pocztku do koDca; W pierwszym przebiegu asembler stara si wyznaczy ilo[ci bajtw zajmowane przez poszczeglne rozkazy i dane; jednocze[nie asembler rejestruje w sBowniku symboli wszystkie pojawiajce si definicje symboli (zmiennych i etykiet); W drugim przebiegu asembler tworzy kompletn wersj przetBumaczonego programu, okre[lajc adresy wszystkich instrukcji w oparciu o informacje zawarte w sBowniku symboli; 7) W jaki sposb asembler oblicza pola adresowe rozkazw sterujcych (skokowych)? EIP <- EIP + < liczba bajtw aktualnie wykonywanego rozkazu> + < zawarto[ pola adresowego rozkazu> Rozkazy sterujce dodaj do wskaznika instrukcji EIP liczb umieszczon w polu adresowym rozkazu; poniewa| sumowanie wykonywane jest modulo 232, wic dodanie odpowiednio du|ej liczby powoduje zmniejszenie rejestru EIP; Rozkazy sterujce bezwarunkowe zmieniaj porzdek wykonywania rozkazw; poprzez odpowiednie zwikszenie lub zmniejszenie wskaznika instrukcji EIP mo|na pomin (przeskoczy) kolejne rozkazy, albo wznowi wykonywanie rozkazw, ktre zostaBy ju| wcze[niej wykonane; 8) Napisa rozkaz w asemblerze realizujcy operacje sumowanie AX AX +[0040026AH] add ax, ds:[ 0040026AH] E) Operacje stosu i podprogramy 1) W jaki sposb interpretuje si zawarto[ rejestru wskaznika stosu ESP w procesorze z IA- 32? Rejestr ESP wskazuje wierzchoBek stosu, czyli obszar 4- lub 2-bajtowy, w ktrym przechowywana jest ostatnio zapisana dana. Na stosie mog by zapisywane wyBcznie warto[ci 16- i 32-bitowe! 2) Co oznacza sformuBowanie:  Stos ro[nie w kierunku malejcych adresw Oznacza to, |e pierwsz dan na stosie zapisujemy na najwikszym adresie, a potem wierzchoBek jest przesuwany tak, |e jego adres jest coraz mniejszy. Lokacje bardziej odlegBe od wierzchoBka stosu maj wiksze adresy. 3) Omwi drogi i sposoby przekazywania parametrw do podprogramw. Stosowane s dwa podstawowe sposoby przekazywania parametrw: " przekazywanie przez warto[ (ang. call by value)  do podprogramu przekazywana jest bezpo[rednio warto[ parametru, ktrym mo|e by liczba, tablica liczb, BaDcuch znakw, itp; " przekazywanie przez adres (ang. call by location)  do podprogramu przekazywany jest adres lokacji pamici, w ktrej znajduje si przekazywana warto[; Przekazywanie adresu zmiennej umo|liwia bezpo[redni dostp do niej wewntrz podprogramu, m.in. pozwala to na wpisanie wyniku uzyskanego w trakcie wykonywania podprogramu bezpo[rednio do tej zmiennej; taki sposb pozwala tak|e na dostp do tablicy bez konieczno[ci przekazywania warto[ci wszystkich jej elementw; Drogi przekazywania parametrw: " przez rejestry, " przez stos (typowa, powszechnie stosowana metoda), " przez [lad (tj. przez obszary pamici znajdujce si bezpo[rednio za instrukcj CALL lub INT), " przez bufory (tj. przez zarezerwowane obszary pamici o ustalonych adresach). 4) Omwi zasady dziaBania rozkazw CALL i RET. CALL - odpowiedzialny w procesorach z IA-32 za zapamitywanie [ladu. Wystpuje w wersji z adresowaniem bezpo[rednim i po[rednim. WywoBuje podprogram i zostawia [lad na stosie (adres powrotu, miejsce, do ktrego ma powrci sterowanie po zakoDczeniu wykonywania podprogramu); RET - po zakoDczeniu wykonywania podprogramu przepisuje do rejestru EIP zawarto[ wierzchoBka stosu; po wykonaniu podprogramu zdejmuje z wierzchoBka stosu [lad zostawiony przez CALL i wraca do programu gBwnego; 5) W jakim celu rozkaz wywoBania podprogramu pozostawia [lad na stosie? Konieczne jest bowiem zapamitanie adresu powrotu ([ladu) tj. miejsca, do ktrego ma powrci sterowanie po zakoDczeniu wykonywania podprogramu. Zlad zapisywany jest w procesorze z IA-32 na stosie, w innych procesorach [lad zapisywany jest w rejestrach. 6) Dlaczego wiele programw generowanych przez kompilatory jzykw wysokiego poziomu u|ywa stosu do przechowywania warto[ci zmiennych lokalnych? W praktyce programowania wystpuj wielokrotnie sytuacje, w ktrych konieczne jest tymczasowe przechowanie zawarto[ci rejestru  zazwyczaj rejestrw oglnego przeznaczenia jest zbyt maBo by przechowywa w nich wszystkie wyniki po[rednie wystpujce w trakcie obliczeD. Dodatkow zalet przechowywania danych na stosie jest krtszy kod rozkazu. Procedury i funkcje czsto wykonuj dziaBania na zmiennych lokalnych, ktre s potrzebne tylko w trakcie wykonywania procedury czy funkcji i czsto nie musz by inicjalizowane w segmencie danych programw. 7) Jak rol w trakcie odczytywania warto[ci parametrw przekazanych do podprogramu peBni pomocniczy wskaznik stosu EBP? Poniewa| zawarto[ rejestru ESP mo|e si zmienia w trakcie wykonywania podprogramu, konieczne jest u|ycie innego rejestru, ktrego zawarto[, ustalona przez caBy czas wykonywania podprogramu, bdzie wskazywaBa obszar parametrw na stosie  rol t peBni specjalnie do tego celu zaprojektowany rejestr EBP, czasami okre[lany jako pomocniczy wskaznik stosu; Je[li zawarto[ rejestru EBP jest rwna zawarto[ci ESP, to adres okre[lony przez EBP wskazuje wierzchoBek stosu, a EBP zwikszony o 4, 8, 12,... wskazuje kolejne, uprzednio zapisane, podwjne sBowa na stosie; 8) Na czym polegaj r|nice standardw wywoBywania podprogramw: Pascal, C i StdCall GBwne r|nice midzy standardami dotycz kolejno[ci Badowania parametrw na stos i obowizku zdejmowania parametrw, ktry nale|y najcz[ciej do wywoBanego podprogramu (funkcji), jedynie w standardzie C zajmuje si tym program wywoBujcy; w standardzie Pascal parametry wywoBywanej funkcji zapisywane s na stos w kolejno[ci od lewej do prawej, natomiast w standardzie C i StdCall od prawej do lewej; Standard Kolejno[ Badowania parametrw Obowizek zdjcia parametrw ze na stos stosu Pascal od lewej do prawej wywoBany podprogram C od prawej do lewej program wywoBujcy StdCall od prawej do lewej wywoBany podprogram Standard wywoBywania funkcji i procedur typu Pascal jest szeroko stosowany w r|nych systemach programowania (m.in. w systemie Windows); standard StdCall, stanowicy poBczenie standardw C i Pascal, stosowany jest w 32-bitowych wersjach Windows do wywoBywania funkcji wchodzcych w skBad interfejsu Win32 API; Warto zwrci uwag, |e w wielu przypadkach parametry wywoBania funkcji maj posta wyra|eD  w takim przypadku najpierw obliczana jest warto[ parametru, ktra nastpnie zapisywana jest na stosie; 9) W jaki sposb w programie wywoBuje si funkcje usBugowe systemu operacyjnego? Funkcje usBugowe (systemowe) jak i funkcje biblioteczne mog by wywoBywane w programach napisanych w jzyku wysokiego poziomu, jak rwnie| w programach napisanych w asemblerze; wywoBanie usBugi systemu operacyjnego lub funkcji bibliotecznej realizowane jest za pomoc rozkazu CALL (lub podobnego); Dla funkcji zdefiniowanych w interfejsie Win32 API stosowana jest konwencja woBania StdCall (parametry na stosie Badowane s wg zasad C, natomiast zdejmowanie parametrw wykonuje wywoBana procedura); wyjtek stanowi funkcja wsprintf, ktra ma zmienn liczb parametrw; z kolei dla funkcji zdefiniowanych w bibliotece jzyka C stosowana jest konwencja C, a dla funkcji zdefiniowanych w bibliotece jzyka Pascal  konwencja Pascal; 10) Wyja[ni znaczenie terminu  interfejs programowania aplikacji . API - application programming interface; Interfejs okre[lajcy sposb porozumiewania si programu z systemem operacyjnym (parametry i sposoby przekazywania ich do podprogramw systemowych). Zbir zasad, protokoBw i narzdzi sBu|cych do tworzenia oprogramowania. Dobrze zaprojektowany API zawiera zestaw najcz[ciej u|ywanych elementw programw (w postaci udokumentowanych bibliotek), umo|liwia dostp do systemu operacyjnego, baz danych, interfejsu graficznego, itp. Dziki temu proces tworzenia nowych aplikacji mo|e zosta znacznie przy[pieszony. 11) Omwi podstawowe zasady programowania mieszanego (hybrydowego). Dwie metody doBczania kodu asemblerowego: *w formie wstawek asemblerowych umieszczonych bezpo[rednio wewntrz kodu w JWP **w formie odrbnych moduBw asemblerowych, ktre s odrbnie kompilowane (asemblowane) i Bczone z pozostaBym kodem w czasie linkowania; Stosowanie wstawek nie wymaga oddzielnej kompilacji  u|ywany jest asembler wbudowany w kompilator JWP. Wstawki nie pozwalaj na peBne wykorzystanie mo|liwo[ci kodowania w asemblerze  umo|liwia to stosowanie oddzielnych moduBw asemblerowych; Podprogramy w obu jzykach musz by skonstruowane na tych samych zasadach, t sam metod musz by przekazywane parametry i tak samo nazywa si segmenty (i ich atrybuty). W instrukcjach asemblerowych mo|na odwoBywa si zarwno do zmiennych lokalnych jak i globalnych (zewntrznych); F) Lista rozkazw procesora. 1) Czym r|ni si rozkazy sterujce warunkowe od bezwarunkowych? Specjalne instrukcje, ktre w zale|no[ci od wBasno[ci uzyskanego wyniku (np. czy jest ujemny) zmieni zawarto[ rejestru EIP, dodajc lub odejmujc jak[ liczb, albo te| zmieni zawarto[ EIP w konwencjonalny sposb  instrukcje takie nazywane s instrukcjami sterujcymi (skokowymi); Rozkazy sterujce (skokowe) zmieniaj naturalny porzdek wykonywania rozkazw; je[li testowany warunek, specyficzny dla ka|dego rozkazu sterujcego, jest speBniony, to do wskaznika instrukcji EIP dodawana jest liczba bajtw zajmowana przez rozkaz (zwykle 2 bajty) i liczba znajdujca si w polu adresowym rozkazu sterujcego; je[li warunek jest nie speBniony, to dodawana jest tylko liczba bajtw zajmowana przez rozkaz; Rozkazy sterujce bezwarunkowe - ich jedynym zadaniem jest zmiana porzdku wykonywania instrukcji (nie wykonuj one |adnego sprawdzenia); poprzez odpowiednie zwikszenie lub zmniejszenie wskaznika instrukcji EIP mo|na pomin (przeskoczy) kolejne rozkazy, albo wznowi wykonywanie rozkazw, ktre zostaBy ju| wcze[niej wykonane; Instrukcje sterujce warunkowe na ogB nie wykonuj |adnych obliczeD, ale tylko sprawdzaj, czy uzyskane wyniki maj oczekiwane wBasno[ci; w zale|no[ci od rezultatu sprawdzenia wykonywanie programu mo|e by kontynuowane przy zachowaniu naturalnego porzdku instrukcji albo te| porzdek ten mo|e by zignorowany poprzez przej[cie do wykonywania instrukcji znajdujcej si w odlegBym miejscu pamici operacyjnej; 2) Scharakteryzowa grup rozkazw procesora okre[lanych jako operacje bitowe? Rozkazy AND, TEST, OR, XOR wykonuj operacje logiczne na odpowiadajcych sobie bitach obu operandw  rezultat wpisywany jest do operandu docelowego, i jednocze[nie ustawiane s znaczniki ZF, SF, PF (znaczniki CF i OF s zerowane); rozkaz TEST ustawia znaczniki, ale nie wpisuje wyniku; rozkaz NOT jest jednoargumentowy  nastpuje zanegowanie wszystkich bitw; AND bitowy iloczyn logiczny TEST bitowy iloczyn logiczny (bez wpisywania wyniku) OR bitowa suma logiczna XOR bitowa suma modulo dwa NOT negacja bitowa Poni|ej podano przykBad ilustrujcy dziaBanie rozkazu NOT: 7 6 5 4 3 2 1 0 rejestr AH 0 1 1 1 0 1 0 1 7 6 5 4 3 2 1 0 zawarto[ AH negacja po wykonaniu 1 0 0 0 1 0 1 0 bitowa rozkazu NOT AH ah 3) Jak zmieni si zawarto[ rejestru EBX po wykonaniu rozkazu XOR EBX , 7 EBX nie zmieni si na bitach od 3 do 31, a na bitach od 0 do 2 zmieni warto[ na przeciwn; XOR - oglnie rozkaz taki wykonuje operacj sumy modulo dwa na dwch warto[ciach wskazanych przez pierwszy i drugi operand, a wynik wpisywany jest do pierwszego operandu; zatem rozkaz:  operacja cel, zrdBo wykonuje dziaBanie cel ! cel  operacja zrdBo 4) Omwi technik wyodrbniania zawarto[ci pl bitowych? Rozkazy przesuni i operacji logicznych stosowane s czsto do wyodrbniania pl bitowych; w podanym ni|ej przykBadzie zadanie polega na wyznaczeniu liczby umieszczonej na bitach 5 3 rejestru AH; 7 6 5 4 3 2 1 0 na bitach 5-3 rejestr AH 1 0 1 0 0 1 1 1 umieszczona jest liczba 3-bitowa 7 6 5 4 3 2 1 0 0 0 1 1 1 0 0 0 rejestr BL "maska" bitowa 7 6 5 4 3 2 1 0 zawarto[ AH bitowy 0 0 1 0 0 0 0 0 po wykonaniu iloczyn logiczny rozkazu and ah, bl 7 6 5 4 3 2 1 0 zawarto[ AH przesunicie 0 0 0 0 0 1 0 0 po wykonaniu logiczne w prawo rozkazu shr ah, 3 o 3 pozycje Po wykonaniu powy|szych instrukcji rejestr AH zawiera analizowan liczb 3-bitow zakodowan w zwykBy sposb. 5) Czym r|ni si przesunicia cykliczne od logicznych? W procesorze z IA-32 zdefiniowano r|ne rodzaje operacji przesunicia bitw w rejestrze lub w lokacji pamici; wyr|nia si przesunicia w lewo lub w prawo, przesunicia logiczne i cykliczne (tzw. obroty); dodatkowo zdefiniowano przesunicie cykliczne (rozkazy RCL i RCR), w ktrym znacznik CF traktowany jest jako dodatkowy bit przesuwanego rejestru; SHL przesunicie logiczne (arytmetyczne) w (SAL) lewo SHR przesunicie logiczne w prawo SAR przesunicie arytmetyczne w prawo ROL przesunicie cykliczne w lewo ROR przesunicie cykliczne w prawo RCL przesunicie cykliczne w lewo przez CF RCR przesunicie cykliczne w prawo przez CF Poni|szy rysunek przedstawia schematycznie przesunicie cykliczne (obrt) w lewo; bity wychodzce z pozycji 7 kierowane s na pozycj 0; dodatkowo bity wychodzce wprowadzane s tak|e do znacznika CF; CF 7 6 5 4 3 2 1 0 Przesunicia logiczne dziaBaj podobnie, ale bity wychodzce nie s zawracane, a na bit nr 0 wprowadzane s zera; przesunicia w prawo dziaBaj analogicznie. 6) W jaki sposb kodowane s mnemoniki (skrty literowe) rozkazw wykonujcych dziaBania na liczbach zmiennoprzecinkowych? Ze wzgldu na to, |e posBugiwanie si w procesie kodowania programu warto[ciami zerojedynkowymi byBoby bardzo kBopotliwe, wprowadzono skrty literowe (tzw. mnemoniki) dla poszczeglnych instrukcji (rozkazw) procesora; Pierwsza litera f oznacza, |e mamy do czynienia z koprocesorem (wBa[ciwie to z jednostk zmiennoprzecinkow - jednoznacznie wskazuje to na rodzaj zapisanej liczby), nastpnie pojawia si skrt operacji np div, sub czy te| sqrt (kwadrat); nastpnie mo|e si pojawi literka p (pop), ktra oznacza skasowanie ostatniej warto[ci z wierzchoBka stosu; G) Sterowanie urzdzeniami zewntrznymi. 1) Wyja[ni r|nice w sposobie komunikacji procesora z urzdzeniami zewntrznymi poprzez pami wspBadresowaln i poprzez porty. Sterowanie prac urzdzeD jest realizowane za pomoc podzespoBw tworzcych ukBady wej[cia/wyj[cia; podzespoBy te umo|liwiaj testowanie stanu (gotowo[ci) urzdzenia, wysyBanie poleceD do urzdzenia oraz wysyBanie i przyjmowanie danych; od strony procesora ww. komunikacja odbywa si zazwyczaj poprzez zapis i odczyt rejestrw zainstalowanych w ukBadach wej[cia/wyj[cia; f& stosowane s dwie metody dostpu do zawarto[ci rejestrw ukBadw wej[cia/wyj[cia: " rejestry udostpniane s jako zwykBe komrki pamici w przestrzeni adresowej pamici  mwimy wwczas o wspBadresowalnych ukBadach wej[cia/wyj[cia; " rejestry urzdzenia dostpne s w odrbnej przestrzeni adresowej zwanej przestrzeni adresow wej[cia-wyj[cia lub przestrzeni adresow portw; takie rozwizanie okre[lane jest czasami jako izolowane wej[cie-wyj[cie; Stosujc pierwsz metod mo|na odczytywa i zapisywa rejestry urzdzenia tak samo jak zwykBe komrki pamici, np. za pomoc instrukcji MOV; w komputerach PC metoda ta stosowana jest m.in. w odniesieniu do pamici ekranu; Stosujc drug metod konieczne jest zdefiniowanie odrbnych rozkazw przesyBania, dziaBajcych w przestrzeni adresowej portw: w architekturze IA 32 rol te peBni rozkazy IN i OUT (i ich rozszerzenia); 2) Jak zorganizowana jest pami ekranu w trybie tekstowym? Typowym przykBadem wykorzystania techniki ukBadw wspBadresowalnych jest pami ekranu w komputerach PC; w trybie tekstowym typowego sterownika graficznego znaki wy[wietlane na ekranie stanowi odwzorowanie zawarto[ci obszaru pamici operacyjnej (RAM) od adresu fizycznego B8000H; pami ta nale|y do przestrzeni adresowej procesora, ale zainstalowana jest na karcie sterownika; Ka|dy znak wy[wietlany na ekranie jest opisywany przez dwa bajty w pamici ekranu: bajt o adresie parzystym zawiera kod ASCII znaku, natomiast nastpny bajt zawiera opis sposobu wy[wietlania, nazywany atrybutem znaku; 3) Omwi r|ne techniki skojarzenia rejestrw urzdzenia z portami. Zazwyczaj sterowniki urzdzeD maj kilka, a czasami nawet kilkadziesit rejestrw; w najprostszym przypadku ka|dy rejestr jest skojarzony z jednym portem; wwczas zapis i odczyt poszczeglnych rejestrw realizowany jest za pomoc rozkazw IN i OUT dziaBajcych na odrbnych portach  ilustruje to poni|szy rysunek: Porty Rejestry W innych rozwizaniach kolejne dane wysyBane do okre[lonego portu (np. 3C9H) s automatycznie kierowane do kolejnych rejestrw urzdzenia: Port Rejestry Przy znacznej liczbie rejestrw urzdzenia stosowany jest czsto dostp za po[rednictwem dwch portw: portu adresowego i portu danych; ka|da operacja odczytu/zapisu rozpoczyna si od przesBania przez port adresowy numeru wewntrznego rejestru, na ktrym ma by wykonane dziaBanie; nastpnie wBa[ciwe dane s odczytywane lub zapisywane za po[rednictwem portu danych: Rejestry Port adresowy Port danych Czsto stosowanym rozwizaniem jest u|ywanie tego samego portu do odczytu jednego rejestru i zapisu innego rejestru; taka konstrukcja jest charakterystyczna dla wielu urzdzeD, w ktrym zdefiniowano rejestr stanu (ang. status register), opisujcy aktualny stan urzdzenia i rejestr sterujcy (ang. control register), za po[rednictwem ktrego wysyBane s dyspozycje do urzdzenia; rejestr stanu mo|e by tylko odczytywany (wyjtkowo tak|e zerowany), a rejestr sterujcy mo|e by tylko zapisywany: Port Rejestry 4) Omwi organizacj pamici ekranu w trybie graficznym 13H (raster 320*200) WspBczesne sterowniki (karty) graficzne oferuj zazwyczaj wiele trybw wy[wietlania, r|nicych si rozdzielczo[ci, liczb kolorw i innymi parametrami  wszystkie sterowniki realizuj nadal funkcje zwykBego sterownika VGA, ktry oferuje midzy innymi do[ prosty tryb graficzny oznaczony numerem 13H; w trybie tym raster ma wymiary 320 * 200 pikseli, przy 256 kolorach; W trybie 13H pami ekranu, zawierajca 64000 bajtw (320 * 200), umieszczona jest poczwszy od adresu fizycznego A0000H; kolejne bajty w tym obszarze opisuj kolory pikseli wg standardowej palety VGA (palet mo|na zmieni), np.10 oznacza kolor jasnozielony; 5) Omwi podstawowe elementy systemu przerwaD stosowanego w komputerach PC. W nowszych komputerach PC system przerwaD obsBugiwany jest przez ukBad APIC, ktry peBni rol  sekretarki procesora, a tak|e wspomaga prace wieloprocesorow; wcze[niej przerwania byBy obsBugiwane przez dwa ukBady typu 8259 (PIC); SygnaBy przerwaD wysyBane s przez r|ne urzdzenia zewntrzne komputera (klawiatura, drukarka, mysz, dyski, itd.) do procesora; sygnalizuj one procesorowi wystpienie pewnych zdarzeD (np. naci[nicie przycisku myszki), ktre wymagaj podjcia niezwBocznej obsBugi przez procesor; Procesor po otrzymaniu sygnaBu przerwania przerywa wykonywanie bie|cego programu i rozpoczyna wykonywanie innego programu; program ten identyfikuje otrzymany sygnaB przerwania i podejmuje odpowiednie dziaBania w stosunku do urzdzenia, ktre wysBaBo przerwanie; po wykonaniu tych dziaBaD procesor powraca do dalszego wykonywania przerwanego programu; Zarwno sprztowe jak i programowe aspekty systemu przerwaD s stosunkowo maBo znane nawet dla zawodowych programistw; obsBuga przerwaD jest bowiem realizowana przez system operacyjny, ktry nie zezwala aplikacjom na jakiekolwiek ingerencje w tym zakresie; Reasumujc, w praktyce zwykBego programowania mechanizmy przerwaD nie s bezpo[rednio widoczne, ich znajomo[ jednak jest niezbdna do tworzenia oprogramowania obsBugi urzdzeD; Zazwyczaj ka|de urzdzenie doBczone do komputera jest w stanie generowa sygnaBy przerwaD; wymaga to odpowiedniego zorganizowania systemu przerwaD, tak by poszczeglne przerwania byBy przyjmowane wg ustalonej hierarchii; na ogB procesor nie jest przygotowany do bezpo[redniej obsBugi przerwaD, zwBaszcza je[li jest zainstalowanych du|o urzdzeD; Stosowane s r|ne systemy obsBugi przerwaD; niekiedy zainstalowana jest wsplna linia przerwaD dla wszystkich urzdzeD  po nadej[ciu przerwania procesor sprawdza stany poszczeglnych urzdzeD identyfikujc urzdzenie, ktre wysBaBo przerwanie (metoda odpytywania); w innych systemach linia przerwaD przechodzi przez wszystkie zainstalowane urzdzenia ustawione wg priorytetw; w komputerach PC priorytet przerwania ustalany jest poprzez odpowiednie skonfigurowanie ukBadw PIC lub APIC. 6) Jak rol w obsBudze przerwaD sprztowych peBni  tablica deskryptorw przerwaD ? W architekturze IA 32 tablica deskryptorw przerwaD zawiera adresy podprogramw obsBugi przerwaD sprztowych wysyBanych przez r|ne urzdzenia komputera; tablica zawiera tak|e adresy podprogramw obsBugujcych wyjtki procesora (przerwania generowane przez sam procesor); ponadto mog by w niej umieszczone adresy podprogramw systemowych, ktre wywoBywane s z poziomu aplikacji za pomoc rozkazu INT (np. w Linuksie); Omawiana tablica zawiera 256 elementw nazywanych deskryptorami; ka|dy deskryptor zajmuje 8 bajtw; wyr|nia si trzy rodzaje deskryptorw: furtki przerwania (u|ywane przy obsBudze przerwaD sprztowych), furtki potrzasku (u|ywane przy obsBudze wyjtkw procesora i wywoBaD za pomoc rozkazu INT) oraz furtki zadania (u|ywane w sytuacjach awaryjnych); Furtki przerwania i potrzasku zawieraj adresy odpowiednich podprogramw obsBugujcych przerwania i wyjtki; deskryptory znajdujce si na pozycjach 0 31 u|ywane s do obsBugi wyjtkw generowanych przez procesor; pozostaBe deskryptory mog zawiera adresy podprogramw obsBugujcych przerwania sprztowe i wywoBania systemowe; PoBo|enie tablicy deskryptorw przerwaD w pamici gBwnej komputera wskazane jest przez zawarto[ rejestru IDTR; G) Hierarchia pamici 1) Co oznaczaj terminy  trafienie i  chybienie w odniesieniu do pamici podrcznej? W trakcie wykonywania rozkazw procesor szuka najpierw rozkazw i danych w pamici podrcznej: " je[li potrzebna informacja zostanie znaleziona, co jest okre[lane jako trafienie (ang. cache hit), to jest przesyBana do procesora; " je[li potrzebnej informacji nie ma w pamici podrcznej (chybienie, ang. cache miss), to jest ona pobierana z pamici gBwnej, przy czym jednocze[nie wpisywana jest do pamici podrcznej w postaci caBego bloku; 2) Na czym polega technika dostepu do pamici podrcznej z odwzorowaniem bezpo[rednim W technice tej nie wystpuje konieczno[ jednoczesnego porwnywania wielu etykiet; f& 32-bitowy adres pamici jest dzielony na trzy pola: pole etykiety (16 bitw), pole obszaru (12 bitw) i pole sBowa (4 bity); przypu[my, |e pami podrczna jest na razie caBkowicie pusta i zachodzi konieczno[ skopiowania do niej bloku 16-bajtowego z pamici RAM o adresie A4447650H; wwczas blok ten zostanie wpisany do wiersza pamici podrcznej o indeksie 765H i jednocze[nie do pola etykiety tego wiersza zostanie wpisana warto[ A444H; f& je[li w trakcie dalszych dziaBaD zajdzie konieczno[ odczytu bajtu o adresie A4447652H, to zostan podjte ni|ej podane dziaBania: " zostanie wyznaczona liczba zapisana w polu etykiety (16 bitw) oraz liczba w polu obszaru (12 bitw) podanego adresu  w analizowanym przykBadzie maj one warto[ci A444H i 765H; " z wiersza pamici podrcznej o indeksie 765H zostanie odczytana zawarto[ pola etykiety i porwnana z liczb A444H (pole etykiety adresu 32-bitowego); " je[li porwnywane warto[ci s identyczne, to zostanie odczytany indeksowany wiersz, w ktrym na pozycji 2 znajduje si potrzebny bajt; " je[li porwnywane warto[ci nie s jednakowe, to bajt trzeba odczyta z pamici RAM; f& istnieje wiele adresw 32-bitowych, ktre maj identyczne 12-bitowe pole obszaru i r|ne warto[ci pola etykiety  w pamici podrcznej bdzie zapisany tylko jeden blok 16- bajtowy; ograniczenie to stanowi gBwny problem wystpujcy przy odwzorowaniu bezpo[rednim; Adres 32-bitowy generowany przez procesor etykieta (16 bitw) nr linii adres (12 bitw) wewn. bloku etykieta blok 000 001 002 FFF Pami podrczna 3) Omwi schemat wspBdzia1ania r|nych rodzajw pamici w komputerze znany jako  hierarchia pamici rejestry Mniejsza, L0 Rejestry procesora przechowuja procesora szybsza i informacje uzyskane z pamieci L1 dro|sza pami (on-chip) L1: podrczna zintegrowana z Pami L1 przechowuje procesorem (SRAM) informacje uzyskane z pamici L2 pami podrczna (off-chip) L2: niezintegrowana z Pami L2 przechowuje procesorem (SRAM) informacje uzyskane z Wiksza, pamici gBwnej wolniejsza L3: pami gBwna (operacyjna) Pami gBwna i taDsza (DRAM) przechowuje informacje uzyskane pami masowa (ang. secondary L4: z pamici masowej storage) (dyski lokalne) L5: pami masowa (rozproszone systemy plikw, serwery sieciowe) Pami masowa przechowuje informacje uzyskane z dyskw w serwerach sieciowych

Wyszukiwarka

Podobne podstrony:
wymiana ciepla opracowanie stare
opracowane pytania 98 stare
Elektroenergetyka opracowanie1
przetworniki II opracowane
Mechanika Techniczna I Opracowanie 06
Marketing Opracowane Pytania Egzaminacyjne 2009 Furtak (46)
grice opracowaniE Cooperative Principle, Maxims of Conversation
lipidy opracowanie z ŚUM (1)
Stare Dobre Małżeństwo U studni (2003) Złota kolekcja
Pytania opracowane na Matysiaka (1)

więcej podobnych podstron