Grupa 3
1. 3 najważniejsze cechy oprogramowania systemowego
Przystosowane do jednego typu (rodziny) procesora.
Szybkie, kod zajmuje mało miejsca w porównaniu z podobnymi funkcjami w HLL.
Posiada bezpośredni dostęp do sprzętu.
2. Czy można uruchomić program napisany dla danego typu procesora na innym procesorze?
Nie można, gdyż oprogramowanie systemowe wykorzystuje architekturę konkretnego procesora.
3. Opisz tablicę asemblacji (Co zawiera tablica kodu instrukcji asemblacji na kod maszynowy. Ogólnie chodzi o tablicę używaną przy asemblacji )
Plik źródłowy zawiera instrukcje, tłumaczone bezpośrednio na kod oraz nie tłumaczone dyrektywy i etykiety. Na czas asemblacji powstaje tablica symboli, zawierająca używane podczas tłumaczenia symbole (np. LOOP, START), czyli nazwy etykiet i ich adresy oraz stałe stworzone przez dyrektywę EQU wraz z ich wartościami. Tablica tworzona jest przy pierwszym przejściu asemblera i wykorzystywana w drugiej części.
4. Asemblacja warunkowa - do czego się używa
Używamy gdy chcemy wygenerować kilka różnych programów w zależności od warunków zewnętrznych (sprzęt, czas, istnienie innego oprogramowania).
5. Działanie makroinstrukcji z parametrami
Gdy wywołamy makro z parametrami, to zostaną one wstawione jako tekst w miejsce ich wystąpienia w makrodefinicji. Parametry nie zostaną przekazane w sensie zapisania danych w pamięci.Tekst całej makrodefinicji zostaje wstawiony razem z odpowiednimi parametrami w miejscu jej wywołania.
6. Co należy poddać modyfikacji przy relokacji?
Wszystkie adresy oraz obliczone za ich pomocą wartości.
7. Konsolidacja modularna (skąd wiadomo, że coś tam jest modułem czy coś takiego)
Aby konsolidator wiedział, gdzie ma szukać odpowiednich procedur, niezbędne jest użycie dyrektyw PUBLIC i EXTERN. Jeżeli program jest zawarty w kilku plikach źródłowych, to każdy jest z punktu widzenia asemblera równoprawnym modułem, zatem występowanie dyrektywy PUBLIC bądź EXTERN warunkuje budowę modularną programu.
8. Konsolidacja dynamiczna
Polega na tym, że odpowiednie moduły ładowane są dopiero wtedy, gdy podczas wykonywnia programu zaistnieje potrzeba skorzystania z funkcji w nich zawartych.
9. Parametr wejścia-wyjścia
Parametr taki zawiera dane przekazywane do funkcji, w celu dokonania odpowiednich obliczeń i zwrócenia przez niego ich wartości. Jest wskaźnikiem do zmiennej umieszczonej w pamięci.
10. Kiedy można używać przekazywania parametrów w kodzie programów.
Gdy jesteśmy pewni, że parametr zawsze będzie miał tą samą wartość.
Grupa 2:
1. Podaj schemat działania przy projektowaniu programu aplikacyjnego
Określenie konkretnego działania programu i jego wymagań.
Sporządzenie schematu blokowego.
Napisanie programu.
Asemblacja programu.
Testowanie i debugowanie programu.
2. Jak zaznaczamy typ adresowania
Wprowadzając przed lub po nazwą zmiennej (wartością) odpowiedni symbol:
# - adresowanie natychmiastowe np. #10
@ - adresowanie przez odwołanie np. @0x124312
Gdy nic nie zmieniamy to mamy adresowanie bezpośrednie np. LED
3. Jaką modyfikację należy wykonać aby program był konsolidowany dynamicznie
W miejsca odwołan bibliotecznych wstawic trzeba zakładki - wprowadza na swoje miejsce adres potrzebnego podprogramu i powoduje jego wykonanie.
Trzeba utworzyć moduły i zrobić z nich biblioteki z funkcjami, które będą ładowane na bieżąco w trakcie wykonywania programu(musi mieć budowe modularną).
4. Jak rozwiązać problem odwołań do przodu
Skorzystac z asemblera dwuprzejsciowego, który w pierwszym przejściu tworzy tablicę symboli (odwołań) z której korzysta przy drugim przejściu.
5. Co to jest makroinstrukcja
Jest to część programu napisanego w języku asemblera, interpretowana przez makroasembler. Zawiera kod programu, który w trakcie asemblacji zostanie podstawiony w miejsce jej wywołania.
6. Co zawiera plik wynikowy
Nagłówek z informacją o pliku.
Kod maszynowy-wynikowy.
Tablicę relokacji.
Dodatkowe informacje przydatne np. przy debugingu (numery wierszy itd.)
7. Co zawiera plik wynikowy programu konsolidowanego
Informacja nagłówkowa = długości poszczególnych segmentów i adres pierwszej instrukcji programu.
Segment programu - zawiera kod maszynowy.
Segment danych - zawiera dane o zainicjowanych wartosciach.
Tablicę relokacji.
Tablicę symboli zdefiniowanych za pomocą EXTERN (w bieżącym module).
Tablicę symboli zdefiniowanych w innych modułach z użyciem PUBLIC.
8. Na czym polega przekazywanie przez odwołanie
Przekazywany jest adres zmiennej (pod którym jest zapisana w pamięci), na podstawie którego zostaje wyłuskana potrzebna wartość.
9. Jak zwrocic błąd z procedury?
Po prostu przyjmując jakąś wartość zwróconą przez parametr wyjściowy lub wejściowo-wyjściowy jako błąd. Lub wykorzystac np. bit przeniesienia - łatwo sprawdzic.
Gr 4 i 1
1) Co to jest dyrektywa?
Jest symbolem rozumianym przez asembler służącym do sterowania asemblacją programu. Nie jest tłumaczona na kod maszynowy.
2)Czym się różni makro od procedury?
Kod makra jest wklejany do programu w miejscu wywołania.
Kod procedury ulokowany jest w jednym miejscu, a podczas odwołania do procedury, jak i jej opuszczenia, wykonywane zostają skoki bezwarunkowe w odpowiednie miejsca w kodzie - skok i powrot w czasie wykonia programu.
3)Czy program konsolidowalny może być nierelekowalny?
Może. Nie każdy program musi być relokowalny, w szczególności wynikiem asemblacji jest zawsze powstanie kodu maszynowego. Inne elementy, takie jak tablica symboli relokowalnych są opcjonalne.
4)Co to jest relokowalność?
Możliwość załadowania programu od dowolnego miejsca w pamięci
5)Jaka jest zależność asemblera i języka maszynowego?
Każda instrukcja asemblera odpowiada dokładnie jednej instrukcji kodu maszynowego.
6)Co to są moduły, które potem są konsolidowane?
Moduły to oddzielne pliki, utworzone w procesie asemblacji, powstałe z oddzielnych plików źródłowych.
7)Jak się tworzy program oparty na procedurach?
Stworzenie takiego programu polega na rozdzieleniu zadań na jak najmniejsze. Dekompozycja funkcjonalna (od góry do dołu):
- zaprojektuj program przed programowaniem
- podziel duze zadania na mniejsze
- uzyj struktury hierarchicznej opartej na procedurach
- poszczególne procedury testuj oddzielnie
8)Kiedy można parametry do procedury przekazywać przez rejestr?
Przy odwoływaniu pośrednim i bezpośrednim. Gdy kod wywołania procedury uwzględnia zapisanie potrzebnych danych z rejestru na stos.
9)Korzyści z implementacji zm. lokalnych na stosie.
Zapewnia możliwość przekazania dużej ilości parametrów (np. przy wywoływaniu rekurencyjnym).
10)Co zawiera tabela symboli?
Zawiera nazwy symboli i ich adresy (np. adresy etykiet) bądź adresy w pamięci do danych (stałych) utworzonych za pomocą odpowiednich dyrektyw.