background image

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. 

Realizuje funkcje konieczne do działania systemu komputerowego. 
Użytkownik  nie ma z nim bezpośredniej styczności.

 

2. Czy można uruchomid 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 )
 

 

Dokładnie nie wiem o co chodzi. 

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.

 

W drugim przejściu 

powstaje też tablica używana przez konsolidator, zawierająca m.in. informacje relokacyjne.

 

4. Asemblacja warunkowa - do czego się używa  
Używamy  gdy chcemy wygenerowad kilka różnych  programów  w zależności od warunków 
zewnętrznych  (sprzęt, czas, istnienie innego oprogramowania).

 

Podczas debugowania można 

użyd do wyłączania lub włączania różnych fragmentów  kodu, aby zobaczyd jakie warianty 
zadziałają najlepiej.

 

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 poddad modyfikacji przy relokacji? 
Wszystkie adresy oraz obliczone za ich pomocą  wartości.

 

Również adresy etykiet (gdyż w 

uproszczeniu  wartością etykiety jest adres).

  

7. Konsolidacja modularna (skąd wiadomo, że coś tam jest modułem czy coś takiego) 
Aby konsolidator wiedział, gdzie ma szukad 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 
obliczeo i zwrócenia przez  niego ich wartości. Jest wskaźnikiem do zmiennej umieszczonej w 
pamięci. 
10. Kiedy można używad przekazywania parametrów w kodzie programów.  

Gdy jesteśmy pewni, że parametr  zawsze będzie miał tą samą wartośd.

 

 

background image

Grupa 2:  
1. Podaj schemat działania przy projektowaniu programu aplikacyjnego   
Określenie konkretnego  działania programu  i jego wymagao. 
Sporządzenie  schematu blokowego. 
Napisanie programu. 
Asemblacja programu. 
Testowanie i debugowanie  programu. 

Gdzieś na slajdach jest dokładnie to rozrysowane.

 

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 wykonad 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 utworzyd  moduły i zrobid z nich biblioteki z funkcjami, które będą ładowane na 
bieżąco w trakcie wykonywania programu(musi  mied budowe  modularną).

 

W pamięci operacyjnej konieczne jest rezydowanie  loadera dynamicznego.

 

4. Jak rozwiązad problem odwołao do przodu  
Skorzystac z asemblera dwuprzejsciowego,  który w pierwszym przejściu tworzy  tablicę 
symboli (odwołao) z której korzysta przy drugim przejściu. 
5. Co to jest makroinstrukcja  
Jest to częśd 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.) 

Zawartośd jest zależna od formatu  pliku.

 

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śd. 
9. Jak zwrocic błąd z procedury? 
Po prostu przyjmując  jakąś wartośd zwróconą  przez parametr  wyjściowy lub wejściowo-
wyjściowy jako błąd. Lub wykorzystac np. bit przeniesienia – łatwo sprawdzic. 
 

background image

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. 

Stosowanie makrodefinicji powoduje  wzrost 

objętości kodu wynikowego w porównaniu  z procedurą.  Stosowanie procedur  wymaga 
dodatkowego  narzutu  czasu pracy procesora na obsługę skoków i związanych z nimi 
czynności.

 

3)Czy program konsolidowalny może byd nierelekowalny? 

To pytanie jest chyba źle sformułowane, gdyż każdy poprawnie napisany program jest 
konsolidowalny.
 

Może. Nie każdy program  musi byd 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śd?  
Możliwośd załadowania programu  od dowolnego miejsca w pamięci 
5)Jaka jest zależnośd 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. 

Oddzielne moduły  są zwykle zbiorem  logicznie pogrupowanych  procedur  i 

funkcji. Konsolidacji programu  złożonego  z modułów  tworzy  spójny plik wynikowy.

 

7)Jak się tworzy program oparty na procedurach?  
Stworzenie  takiego programu  polega na rozdzieleniu zadao 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 przekazywad 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śd 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. 

Tablica symboli tworzona  jest w 

pierwszym przejściu asemblera i wykorzystywana  jest w jego drugim przejściu. 
 

Kol or zi elony - tera z czarny - wyda je mi się że jest dobrze Kolor fioletowy - może dobrze, a może źle (ja bym tak napisał na 
chwi lę obecną). Kolor niebieski - i nformacje dodatkowe. Kolor czerwony – komentarze. Wprowadzone zmiany. 

„Generalnie to na szybko robione, bez zaglądania do materiałów, niby pamiętam dośd, ale no nie 
wiem. (…)” – Kerto.