ask egzamin rozwiazny

background image

Rozwiązanie przykładowych zadań

egzaminacyjnych z ASK

Dr inż. Ignacy Pardyka

15 września 2010

Zadanie 1 (10p.)

W programie zadeklarowane są dwie zmienne x,y typu ASK, gdzie ASK
została zdefiniowana jako typ union. Zgodnie z deklaracją tablica x.A jest
składową unii, więc jej adres pokrywa się z adresem zmiennej x. Kolejnym
elementom tablicy x.A przypisano wartości (zgodnie z tabelą kodów znaków
ASCII): x.A[0] = 0x39, x.A[1] = 0x2B, x.A[2] = 0x33, x.A[3] = 0x3E.
Elementy tablicy są jednobajtowe, więc A[0] jest w pamięci pod adresem
zmiennej x, a pod kolejnymi adresami odpowiednio elementy A[1], A[2],
A[3]. W celu obliczenia wartości prawej strony instrukcji przypisania:

y.c = (x.a & 0xFF 00 00 00) | 0x80 00 00 00;

zauważamy najpierw, że składowa x.a jest pod tym samym adresem, co
zmienna x, a pod tym adresem jest też element x.A[0]. Zmienna x.a jest
typu int, więc jest reprezentowana na 4 bajtach, dlatego trzeba przyjąć
założenie odnośnie do konwencji reprezentacji danych wielobajtowych. Jeśli
stosowana jest konwencja little-endian, to pod adresem składowej x.A[0] jest
najmłodszy bajt zmiennej x.a. Zmienna x.a jest więc reprezentowana przez
wzorzec: 0x3E 33 2B 39. Po operacji koniunkcji bitowej mamy:

x.a & 0xFF 00 00 00 = 0x3E 00 00 00

a po operacji alternatywy bitowej:

0x3E 00 00 00 | 0x80 00 00 00 = 0xBE 00 00 00.

Zatem y.c = 0xBE 00 00 00. Zmienna y.c jest składową unii y. Cztery
bajty zmiennej y.c są umieszczone w pamięci (zgodnie z konwencją little-
endian
). Pod tym samym adresem jest zmienna y.a typu całkowitego ze
znakiem (int) zakodowana w kodzie U2. Dlatego 32-bitowy wzorzec dla
y.a to 0xBE 00 00 00 = 1011 1110 0...0B. Wartość dziesiętną tej liczby
odczytujemy wprost jako

y.a = −1 × 2

31

+ 1 × 2

29

+ 1 × 2

28

+ 1 × 2

27

+ 1 × 2

26

+ 1 × 2

25

.

(1)

1

background image

Wartość wyrażenia 1 jest ujemna, a jej postać dziesiętna (po przeprowadze-
niu rachunków) to −33 × 2

25

.

Składowa unii y.b jest typu float, więc reprezentowana jest zgodnie

ze standardem IEEE-754 na 4 bajtach. Adres zmiennej y.b pokrywa się z
adresem y.c, więc jej 32-bitowy wzorzec to

y.b = 0xBE 00 00 00 = 1011 1110 0...0B.

Obliczamy wartość dziesiętną liczby zmiennoprzecinkowej:

• liczba jest ujemna, bo najstarszy bit ma wartość 1

• cecha ma wzorzec bitowy: 0111 1100B, czyli wartość: 124

Ostatecznie, wartość liczby y.b, to

y.b = −1.0 × 2

124−127

= −2

−3

= −0.125.

(2)

Zmienna y.c jest typu unsigned, a więc jest reprezentowana w natural-

nym kodzie dwójkowym na 4 bajtach. Jej wzorzec bitowy 0xBE 00 00 00
odpowiada wartości dziesiętnej:

B × 16

7

+ E × 16

6

= 16

6

(11 × 16 + 14) = 190 × 16

6

= ...

(3)

Zmienna y.f.s to pole bitowe struktury f, która jest składową unii y.

Struktura y.f jest pod adresem zmiennej y.c, więc jej wzorzec bitowy to
y.f = 0xBE 00 00 00. Zgodnie z konwencją little-endian bajty zmiennej y.f
są umieszczone w pamięci począwszy od najmłodszego. Zgodnie z definicją
tej struktury kolejne pola bitowe mają wartości: y.f.m = 00...0 = 0 (na
23 bitach), y.f.c = 0111 1100B = 124, y.f.s =1 (1 bit).

Zadanie 2 (5p.)

Praca procesora sprowadza się do realizacji cykli rozkazowych. Kolejne fazy
cyklu to:

1. Faza pobrania rozkazu. W liczniku rozkazów EIP jest adres rozkazu,

który ma być pobrany z pamięci. Procesor wystawia zawartość EIP
na magistralę adresową, a pamięć zwraca zaadresowane bajty poprzez
magistralę danych. Procesor umieszcza pobraną instrukcję w rejestrze
rozkazów i zwiększa zawartość EIP, aby wskazywał na kolejną instruk-
cję (domyślnie jest to instrukcja pod kolejnym adresem w pamięci).

2. Faza dekodowania instrukcji. Procesor dekoduje instrukcję i, w tym

przypadku, okazuje się, że jest to instrukcja call adr. Rozpoznawany
jest też tryb adresowania operandów.

2

background image

3. Faza pobierania operandów. W przypadku instrukcji call operandem

jest adres pierwszej instrukcji podprogramu. Operand zostaje pobrany
zgodnie z występującym, aktualnym trybem adresowania.

4. Faza wykonania rozkazu. W przypadku instrukcji call procesor zapa-

miętuje na stosie (adres wierzchołka stosu jest w rejestrze ESP) bieżącą
zawartość licznika rozkazów EIP, a następnie do EIP zapisuje wartość
operandu ustalonego w poprzedniej fazie. Od tej chwili w EIP jest ak-
tualna wartość adresu instrukcji, która ma być pobrana w następnym
cyklu rozkazowym.

5. Jeśli nie wystąpiło przerwanie, to bieżący cykl rozkazowy został za-

kończony.

Zadanie 3 (5p.)

Zmienne lokalne podprogramów są standardowo przechowywane na stosie
w pamięci. Wykonanie podprogramu rozpoczyna się od realizacji rozkazów
zapamiętujących na stosie zawartości rejestru EBP (bieżącego wskaźnika
ramki stosu) i wpisania do EBP adresu wierzchołka stosu (czyli adresu, pod
którym w pamięci została przed chwilą zapamiętana stara wartość EBP).
Kolejne instrukcje podprogramu służą do rezerwowania miejsca na stosie
dla zadeklarowanych zmiennych lokalnych. Zmienne lokalne są adresowane
względem EBP, dzięki czemu są dostępne jedynie z wnętrza podprogramu
(do zapisu lub odczytu), bez potrzeby ich zdejmowania ze stosu. Przed
zakończeniem procedury, powinny w niej występować instrukcje służące do
wpisania do rejestru ESP zawartości rejestru EBP, a następnie odtworzenia
ze stosu poprzedniej wartości rejestru EBP. Po tej operacji zmienne lokalne
są niedostępne w standardowy sposób (czyli są zniszczone).

Zmienne globalne przechowywane są w pamięci w segmencie danych za-

inicjalizowanych .data lub niezainicjalizowanych .bss. Dostęp do nich jest
realizowany za pomocą adresów ustalanych przed wykonaniem programu,
tj. na etapach kompilacji i konsolidacji.

3


Wyszukiwarka

Podobne podstrony:
statystyka egzaminy rozwiązane, UTP, II semestr, STATYSTYKA
FIZYZA ARKUSZ EGZAMINACYJNY Z ROZWIAZANIEM
4 egzaminy z rozwiązaniami na podstawie notatek Pytlika, Zawiślińskiej i internetu
egzamin rozwiazania, Informatyka Studia WAT WIT POLITECHNIKA, Semestr II 2015, PE2, Ekonomia
TEST na egzamin z rozwiazaniami, ● STUDIA EKONOMICZNO-MENEDŻERSKIE (SGH i UW), prognozowanie i symul
podstawy optymalizacji egzamin rozwiazania, WAT, III SEM, OPTYAMALIZACJA
statystyka egzaminy rozwiązane, UTP, II semestr, STATYSTYKA
2012 Egzamin 2 rozwiazaniaid 27 Nieznany (2)
EGZAMIN ROZWIAZANIE
Arkusz egzaminacyjny z rozwiazaniami 4 kwietnia 2013
egzamin d rozwiazania, chemia organiczna
farma 11 egzamin rozwiazany
EGZAMIN rozwiązany test, UE Katowice FiR, analiza techniczna
ask egzamin sciaga, Informatyka, Informatyka - UJK, ASK, Egzamin
Egzamin z rozwiązaniami 2
ask egzamin Grupa A id 70516 Nieznany (2)
2012 Egzamin 2 rozwiazania
EGZAMIN ROZWIAZANIE
pytania egzamin rozwiązane

więcej podobnych podstron