Kolos 1, INNE, WYKŁADY Lach, Podstawy programowania systemowego


Z1 Użycie języka asemblera do programowania można rekomendować, gdy:

* Program jest ogólnego przeznaczenia na jedną platformę komputerową.

* Program jest ogólnego przeznaczenia na wiele platform komputerową.

* Program jest systemem wbudowanym na jedno urządzenie.

* Żadna z powyższych.

Z2 Wskaż zdania prawdziwe, dotyczące dyrektywy „ENDP”:

* Musi wystąpić na końcu każdego rozgałęzienia procedury.

* Zastępuje instrukcję RET.

* Umożliwia asemblerowi określić zakres lokalności wewnętrznych zmiennych procedury.

* Używana jednocześnie z dyrektywą PROC umożliwia asemblerowi określić zakres lokalności wewnętrznych zmiennych procedury.

Z3 Jaki jest skutek użycia dyrektywy REPEAT (w języku asemblera) w następującej konstrukcji:

REPEAT wyrażenie

instrukcja

ENDM

* Wykonanie „instrukcja” tyle razy, ile wskazuje wyrażenie.

* Umieszczenie kodu „instrukcja” tyle razy, ile wskazuje wyrażenie.

* Wykonywanie „instrukcja” tak długo, aż wyrażenie uzyska wartość TRUE.

* Utworzenie kodu „instrukcja” tak długo, aż wyrażenie uzyska wartość TRUE.

Z4 Makrodefinicja ma następującą postać

MA MACRO X1, X2

MOV AX, X2

MOV X1, AX

ENDM

Jak wyglądać będzie rozwinięcie makrowywołania: MA D1, D2

* MOV AX, D2

MOV D1, AX

ENDM

* MOV AX, D2

MOV D1, AX

* MOV AX, X2

MOV X1, AX

* MOV AX, D1

MOV D2, AX

Z5 Wskaż, które elementy pliku wynikowego potrzebne są do debuggingu:

* Lista symboli lokalnych

* Lista pozycji relokowalnych

* Rozmiar kodu

* Nazwa pliku

Z6 Wskaż zdanie prawdziwe:

* Jednej instrukcji ASM przypisana jest dokładnie jedna instrukcja ML.

* W ogólności jedna instrukcja ASM może być przetłumaczona na grupę instrukcji ML.

* W ogólności jest możliwe, że grupa instrukcji ASM może być przetłumaczona na jedną instrukcję ML.

* Zdanie w pkt.B jest prawdziwe, lecz tylko w odniesieniu do dyrektyw asemblera.

Z7 Jaką funkcję w asemblerze pełni dyrektywa dołączenia dodatkowego(-ch) pliku(-ów) do pliku źródłowego (np. INCLUDE):

* Sterowanie segmentami

* Sterowanie loaderem (programem ładującym).

* Sterowanie programem źródłowym.

* Konsolidacja z podprogramami.

Z8 Dyrektywa generacji danej (np. DW, DB, DD itp.) powoduje:

* Nadanie wartości symbolowi w celu zastąpienia nią tego symbolu przez asembler.

* Nadanie wartości obrazowi komórki(-ek) pamięci, której lokalizacja oznaczona została symbolem.

* Wpisanie do pamięci wartości podanej dyrektywą.

* Żadna z powyższych.

Z9 Kolejność czynności asemblacji:

(a) określenie liczby bajtów zajmowanych przez każdą instrukcję

(b) przypisanie instrukcjom kodów (w tym wartości argumentów)

(c) analiza leksykalna

(d) analiza składniowa

* a,b,c,d

* c,d,a,b

* c,d,b,a

* b,c,a,d

Z10 Zaznacz zdanie prawdziwe dotyczące tablicy symboli w asemblerze:

* Dwuprzejściowy tworzy tablicę symboli w drugim przejściu

* W tablicy symboli każdemu symbolowi przyporządkowany odpowiadający mu adres.

* Jednoprzejściowy nie s.. tablicy symboli

* Dla każdego symbolu tablica symboli zawiera także liczbę bajtów, jaką zajmuje wartość symbolu w ML.

Z11 Zaznacz zdanie prawdziwe dla zagadnienia odwołania w przód:

* W asemblerze jednoprzejściowym nie mogą występować odwołania w przód.

* Jeżeli asembler jednoprzejściowy używa wablicy symboli, to nie występuje w nim problem odwołań w przód.

* W asemblerze dwuprzejściowym nie mogą występować odwołania w przód.

* Nie można przypisać wartości do symbolu, jeżeli ten symbol został w programie zdefiniowany później niż występuje odwołanie do niego.

Z12 Relokacji wymagają:

* Wszystkie instrukcje maszynowe.

* Instrukcja z adresowaniem natychmiastowym.

* Instrukcja z adresowaniem względnym.

* Wszystkie instrukcje z wyjątkiem instrukcji określonych w pkt. B i C powyżej.

Z13 Relokacja kodu programu podczas ładowania programu może polegać na:

* Zastąpieniu dotychczasowych rozkazów nowymi rozkazami wynikającymi z bieżącego rozmieszczenia programu w pamięci.

* Dodaniu adresu początkowego położenia programu do adresów odwołań w tych rozkazach, które zostaną rozmieszczone w innych lokalizacjach niż lokalizacje ustalone podczas asemblacji programu.

* Dodaniu adresu początkowego położenia programu do adresów odwołań w tych rozkazach, które odwołują się do lokalizacji zmienionych w stosunku do położenia ustalonego podczas asemblacji programu.

* Żadna z powyższych.

Z14 Wskaż zdanie prawdziwe dotyczące wyrażeń:

* Różnice wyrażenia względnego i absolutnego ma wartość absolutną.

* Suma wyrażeń względnych ma wartość absolutną.

* Różnica wyrażeń względnych ma wartość względną.

* Różnica wyrażeń względnych ma wartość absolutną.

Z15 Wskaż zdanie prawdziwa dotycząca asemblacji warunkowej:

* Asemblacja warunkowa umożliwia wykonanie bloków programu w zależności od warunków sprawdzanych przez program.

* Zawartość programu źródłowego, który zostanie przetłumaczony na ML, zależy od kombinacji warunków sprawdzanych w trakcie asemblacji.

* Asemblacja warunkowa umożliwia tłumaczenie poszczególnych bloków programu w zależności od warunków sprawdzanych przez program.

* Asemblacja warunkowa wykorzystuje instrukcje warunkowe w celu umożliwienia warunkowości programu.

Z16 Wskaż zdanie prawdziwe dotyczące makroinstrukcji:

* Makroinstrukcja jest nazwanym ciągiem instrukcji ML, który zostanie wstawiony przez asembler do programu źródłowego ilekroć asembler napotka nazwę tej makroinstrukcji.

* Użycie makroinstrukcji daje identyczny skutek jak użycie procedury.

* Użycie makroinstrukcji jest mniej wygodne niż użycie procedury, gdyż w przypadku makroinstrukcji nie można przekazywać parametrów.

* Makroinstrukcje służą do utworzenia modułów programu.

Z17 W procesorach z segmentowaną przestrzenią adresową:

* Procesor posiada specjalną instrukcję do wywołania procedury zlokalizowanej poza bieżącym segmentem, natomiast instrukcja procedur jest taka sama jak dla procedur zlokalizowanych w bieżącym segmencie.

* Wywołanie procedur umieszczonych poza bieżącym segmentem programu jeśli możliwe i nie ma konieczności .. wywołań w ramach bieżącego segmentu i poza tym segmentem.

* Procesor posiada instrukcje do wywołania i powrotu z procedury zlokalizowanej poza bieżącym segmentem, inne od instrukcji dla procedur zlokalizowanych w bieżącym segmencie.

* Nie jest możliwe wywołanie procedur umieszczonych poza bieżącym segmentem programu.

Z18 Które ze zdań odnoszących się do przekazywania parametrów w rejestrach jest nieprawdziwe:

* Nie jest możliwe przekazywanie w ten sposób parametrów „wyjściowych”.

* Liczba przekazywanych parametrów jest ograniczona.

* Czas dostępu do parametru jest najkrótsza z możliwych.

* Przekazywanie parametrów do procedury polega na załadowaniu ich wartości do odpowiednich rejestrów w wywołaniu procedury.

Z19 Jeżeli parametry są przekazywane do procedury poprzez stos, wówczas prawdziwe jest, że:

* W celu przekazania parametrów należy zarezerwować na stosie ramkę na odpowiednią liczbę błędów i wywołać procedurę.

* Należy opróżnić stos z parametrów bądź w procedurze bądź po wyjściu z procedury w programie głównym.

* Parametry należy odczytać ze stosu instrukcją POP (pobierz ze stosu).

* Ramka na stosie w całości składa się z przekazywanych parametrów.

Z20 Jeżeli w programie znajduje się dyrektywa INVOKE z nazwą procedury i następującą po niej listą parametrów, to:

Z21 Jeżeli procedura przekazuje wynik na stosie, to:

Z22 Które ze zdań odnoszących się do rejestrówm które muszą być używane w celu wykonania procedury nie jest prawdziwe:

Z23 Które ze zdań odnoszących się do zmiennych lokalnych jest prawdziwe:

* Użycie dyrektywy „LOCAL” z listą nazw parametrów jest równoważne użyciu instrukcji ENTER z parametrem całkowitym.

* Użycie dyrektywy „LOCAL” z listą nazw parametrów jest Równoważna użyciu instrukcji LEAVE.

* Użycie dyrektywy ”LOCAL” z listą nazw parametrów jest równoważne użyciu pary instrukcji ENTER (po wejściu do procedury) i LEAVE (przed wyjściem z procedury).

* Działaniu dyrektywy „LOCAL” nie można przypisać żadnego równoważnego kodu ASM.

Z24 W procedurze A zagnieżdżona jest procedura B,w procedurze B zagnieżdżona jest procedura C. Procedury utworzono dyrektywami PROC i ENDP. Jeżeli etykieta jest lokalna w procedurze B, to:

* Jest dostępne z procedury C i innych zagnieżdżonych w B.

* Jest niedostępne z procedury A,a dostępne z innych procedur zagnieżdżonych w procedurze A.

* Jest dostępna z procedury A, a niedostępna z innych procedur zagnieżdżonych w procedurze A.

* Jest dostępna tylko w procedurze B.

Z25 Które ze zdań odnoszących się do dynamicznego tworzenia zmiennych lokalnych procedury nie jest prawdziwe:

* Tę samą procedurę z dynamicznie utworzonymi zmiennymi lokalnymi mohą wywoływać różne równoległe wykonywane programy.

* Aby dynamicznie utworzyć zmienne procedury, należy zarezerwować odpowiednią ilość miejsca na stosie i wywołać procedurę.

* Procedurę z tak utworzonymi zmiennymi lokalnymi można wywoływać rekurencyjnie.

* Dynamiczne zmienne lokalne nie mają lokalizacji w pamięci, dlatego nie można się do nich odwołać z procedury nadrzędnej.



Wyszukiwarka