Zestaw przykładowych pytań do przedmiotu Oprogramowania Mikrokomputerów.
1.Opisz składnię instrukcji assemblera.
2.Czym różni się rozkaz (polecenie) assemblera od dyrektywy?
3.Co to jest i do czego służy licznik lokacji (assemblacji) wykorzystywany podczas assemblacji programu?
4.Co to jest nazwa w języku assemblera i jakie jest jej zastosowanie?
5.Co to jest zmienna czasu assemblacji?
6.Na czym polega różnica pomiędzy operatorem SHL (przesuń w lewo) assemblera a rozkazem SHL (przesuń w lewo) mikroprocesora>
7.Z jakich części składa się słownik nazw assemlera?
8.Wymień i scharakteryzuj atrybuty nazw w assemblerze.
9.Jak operacje wykonywane na argumentach wpływają na ich atrybuty określoności i absolutności? Podaj przykłady.
10.Na czym polega assemblacja warunkowa? Podaj przykłady zastosowań.
11.Opisz ideę makroinstrukcji.
12.Porównaj wady i zalety makroinstrukcji w stosunku do procedury (podprogramu).
13.Co to jest kod przesuwalny? Jakie są jego zalety?
14.W jaki sposób atrybuty zewnętrzności i lokalności (globalności) zwiększają możliwości konsolidacji programu napisanego w assemblerze?
15.Na czym polega konsolidacja programu assemblerowego?
16.Dlaczego assemblacja programu jest conajmniej dwu przebiegowa?
17.Czym różnią się parametry formalne od parametrów aktualnych makroinstrukcji?
18.Podaj przykład uzasadniający celowość tworzenia kodu relokowalnego.
19.Jakiego typu błędy możliwe są do wykrycia podczas assemblacji na podstawie słownika nazw?
20.W jaki sposób nazwa w programie assemblera uzyskuje wartość?
21.Co jest przyczyną a co celem wprowadzenia segmentacji pamięci w systemach mikroprocesorowych?
22.Jaki cel przyświecał podziale jednostki centralnej na kilka działających współbieżnie jednostek funkcjonalnych? Podaj przykład.
23.Na czym polega koncepcja kompatybilności w dół rodziny mikroprocesorów firmy INTEL?. Odpowiedź uzasadnij na podstawie architektury rejestrów jednostki centralnej.
24.Do czego służą rejestry indeksowe mikroprocesora?
25.Jakie jest przeznaczenie rejestru IP (EIP) mikroprocesora? Jaki jest jego związek z rejestrem CS?
26.W jakim celu jest najczęściej wykorzystywany rejestr CX mikroprocesora?
27.Czy i kiedy rejestry BX i DX mogą być wykorzystywane w tym samym celu?
28.Dlaczego zmienne dwubajtowe powinny być umieszczane pod adresami parzystymi?
29.Co oznacza stwierdzenie, że w rodzinie procesorów firmy INTEL mamy do czynienia ze zgodnością kodu binarnego?
30.Opisz różnice pomiędzy znaczeniem i wykorzystaniem znaczników CY i OV.
31.Dlaczego dostęp do pamięci wymaga większej liczby cykli procesora niż dostęp do rejestru?
32.Jaki rejestr poza SP wskazuje na zmienne przekazywane na stos przez wywołujący program?
33.Przekonwertuj adres typu segment-przesunięcie na adres absolutny 0950:0100.
34.Na czym polega różnica pomiędzy trybem adresowania indeksowego i bazowego?
35.Jaki jest sens stosowania trybu adresowania pośredniego? Odpowiedź zilustruj przykładem.
36.Jak przebiega translacja adresu logicznego segment-przesunięcie na adres fizyczny?
37.Czym różni się tryb pracy rzeczywistej od trybu pracy chronionej mikroprocesora?
38.Jakie możliwości niesie ze sobą tryb pracy wirtualnej?
39.Przedstaw najistotniejsze reguły współpracy procesora głównego z koprocesorem.
40.Czym różni się model 80186 od pozostałych procesorów rodziny INTEL 80xxx?
41.Wymień trzy dyrektywy alokacji pamięci, opisz skutki ich zastosowania.
42.Czy możliwa jest inicjalizacja alokowanych zmiennych? Jak to można osiągnąć?
43.Porównaj skutki poniższych zapisów:
a) Zmienna db ‘AbCd’
b) Zmienna dd ABCDh
44.W których komórkach pamięci znajdzie się kod litery $, przyjmując, że zmienna tabela znajduje się pod adresem 80000h?
Tabela db 4 dup( 3 dup(0), 2 dup(‘X’))
45.Jaką wartością (w zapisie dziesiętnym) zainicjowano zmienną ZM dw 0100h?
46.Dlaczego istnieją dwie różne dyrektywy nadania wartości nazwie: dyrektywa znaku równości „=” oraz dyrektywa EQU?
47.Polecenie MOV realizuje transfer informacji pomiędzy .......?
48.Jaki sens ma kontrola typu w odniesieniu do polecenia MOV?
49.Dyrektywa LABEL umożliwia obejście kontroli typu programu assemblującego. Jak jest to zrealizowane, po co wprowadzono taką możliwość? Wypowiedź zilustruj przykładem.
50.Jaki jest związek pomiędzy stosowaniem operandu z przesunięciem a typem argumentu? arrayB db 10h,20h
arrayW dw 100h,200h
……..
mov al,arrayB+1
mov ax,arrayW+2
51.Na stan jakich wskaźników działają rozkazy inkrementacji i dekrementacji?
52.Jaki wpływ na wskaźniki ma użycie rozkazów dodawania i odejmowania?
53.Do czego służy operator OFFSET, podaj przykład zastosowania?
54.Jakie typy obiektów mogą być reprezentowane przez operandy? Podaj trzy przykłady.
55.Podaj sposób zapisu liczby 0F34AB6fh w pamięci?
56.Co to jest etykieta i do czego służy?
57.Jaka jest różnica pomiędzy dyrektywą CODE i STACK?
58.Napisz przykładowe instrukcje wykorzystujące tryb adresowania natychmiastowego i pośredniego.
59.Napisz ciąg dyrektyw definiujący zmienne i zainicjuj je wartościami 3, 15h, 0456h, 01001011b.
60.Jakie informacje zawiera plik mapy?
61.O czym decyduje wybór modelu pamięci?
62.Podaj trzy modele pamięci i podaj ich cechy charakterystyczne.
63.Co można uzyskać poprzez nadanie identycznych wartości rejestrom segmentowym CS=DS.=SS, a co poprzez zainicjowanie ich różnymi wartościami?
64.Do czego służą dyrektywy docelowego procesora?
65.O czym, poza listą dostępnych rozkazów, decyduje dyrektywa docelowego procesora?
66.Podaj 4 przykłady operatorów arytmetycznych możliwych do użycia w wyrażeniach/
67.Jaki jest priorytet i kolejność realizacji operatorów? Jak można go zmienić?
68.Przy użyciu jakiej arytmetyki obliczane są wyrażenia (MOD?)?
69.Do czego służy operator SEG? Podaj przykład zastosowania.
70.Co to jest domyślna wielkość operandu, jakie są konsekwencje przyjęcia domyślnej jego wielkości?
71.W jaki sposób można zmienić domyślną wielkość operandu? Podaj przykład fragmentu programu ilustrujący taką zmianę.
72.W jaki sposób można wymusić dopasowanie kolejnego polecenia w segmencie kodu lub danej w segmencie danych do parzystego adresu? Jaki ma to wpływ na postać programu?
73.Dlaczego czasami musimy poprzedzić rozkaz skoku operatorem SHORT, a czasami nie? Podaj przykłady ilustrujące odpowiedź.
74.Czy stosowanie operatora SHORT ma związek z zastosowanym modelem pamięci?
75.Co zwraca operator TYPE?
76.Do czego służy operator LENGTH?
77.Jaki związek z dyrektywami TYPE i LENGTH ma dyrektywa SIZE?
78.W jaki sposób można w assemblerze zrealizować typ wyliczeniowy?
79.Podaj zasady stosowania operatorów NEAR i FAR.
80.Jaki jest związek zadeklarowanego modelu pamięci z operatorami NEAR i FAR?
81.Jaki wpływ na postać kodu wynikowego ma użycie operatora NEAR i FAR w rozkazie skoku?
82.Zawartość jakiego rejestru modyfikuje rozkaz LOOP?
83.W jakim celu wykorzystywany jest rozkaz LOOP? Podaj przykład programu ilustrujący wypowiedź.
84.Jak wpływa rozkaz LOOP na znaczniki?
85.Czy rejestr DX może być użyty do adresowania pośredniego?
86.Czy każdy rejestr 32-bitowy może być użyty do adresowania pośredniego?
87.Czy zawsze musimy korzystać z segmentu domyślnego? Jeżeli nie to pokaż to na przykładzie.
88.Co to jest tryb adresowania bazowo-indeksowego? Podaj przykład celowości zastosowania takiego trybu adresowania?
89.Jaki jest związek wyboru stosowanego modelu pamięci ze stosowanymi bibliotekami? Odpowiedź uzasadnij.
90.Dlaczego operator PTR jest niezbędny w poniższej instrukcji: add word ptr [si],5 ?
91.Wyjaśnij różnicę pomiędzy przerwaniem i tzw. przerwaniem programowym.
92.Wyjaśnij przebieg zdarzeń związanych z realizacją instrukcji CALL i INT.
93.Wskaźnik stosu zawiera wartość 1001h. Pod jakim adresem zostanie zapamiętana zawartość rejestru AX po wykonaniu push ax, jaki będzie stan wskaźnika stosu?
94.Czy poniższa sekwencja rozkazów jest nieprawidłowa? Odpowiedź uzasadnij.
push ax
push bx
…….
pop ax
pop bx
95.Wymień trzy cele wykorzystania stosu w praktyce pisania programów w assemblerze.
96.Jak „szybko” zachować na stosie zawartość wszystkich rejestrów, aby skrócić czas realizacji procedury?
97.Do czego służą dyrektywy PROC i ENDP?
98.Czy dyrektywy PROC i ENDP mogą się nakładać? Czy mogą być zagnieżdżone?. Odpowiedź uzasadnij.
99.Czy wywołania procedur mogą być zagnieżdżone? Odpowiedź uzasadnij lub zilustruj przykładem?
100.W jaki sposób mogą być przekazywane parametry pomiędzy procedurą i programem wywołującym?
101.Podaj przykład ilustrujący przekazywanie parametrów do procedury za pomocą rejestru(ów).
102.Podaj przykład ilustrujący przekazywanie parametrów do procedury za pomocą wspólnych obszarów pamięci.
103.Podaj przykład ilustrujący przekazywanie parametrów do procedury za pomocą stosu.
104.Porównaj przebieg realizacji wywołania procedury FAR i NEAR.
105.Jak wpływa na obciążenie stosu wywołanie procedury bliskie a jak dalekie?
106.Czy ma sens użycie operatora NEAR w programie pisanym dla modelu pamięci LARGE? Odpowiedź uzasadnij.
107.Czy ma sens użycie operatora FAR w programie pisanym dla modelu pamięci SMALL? Odpowiedź uzasadnij.
108.Czy użycie operatora NEAR lub FAR ma związek z optymalizacją kodu w sensie minimalizacji czasu wykonania programu? Odpowiedź uzasadnij.
109.Czy użycie operatora NEAR lub FAR ma związek z optymalizacją kodu w sensie minimalizacji zajętości pamięci? Odpowiedź uzasadnij.
110.Opisz czynności j.c. związane z realizacją rozkazu CALL n.
111.Opisz czynności j.c. związane z realizacją rozkazu INT n.
112.Opisz czynności j.c. związane z przyjęciem przerwania sprzętowego.
113.Co to jest tablica wektorów przerwań i do czego służy?
114.Co to są i do czego służą przerwania programowe BIOS?
115.Co to są i do czego służą przerwania programowe DOS?
116.W systemie operacyjnym DOS istnieje pojęcie strumienia informacji. Na czym polega i do czego może być wykorzystane przekierowanie strumienia?
117.Podaj sposób wywołania funkcji oferowanych przez BIOS.
118.Opisz metodę wykorzystywania funkcji udostępnianych przez system operacyjny DOS.
119.Jakiego typu informacje zawiera rejestr stanu klawiatury komputera w standardzie PC?
120.Do czego służy rejestr buforowy klawiatury komputera w standardzie PC?
121.Jak wygląda obsługa tzw. przycisków (klawiszy) rozszerzonych klawiatury komputera w standardzie PC?
122.Jak można zabezpieczyć obraz na ekranie monitora przed migotaniem podczas jego modyfikacji?
123.Na czym polega idea wykorzystania pamięci karty graficznej podzielonej na strony?
124.Na czym polega rekurencja? Przedstaw przykład rekurencji w języku assemblera.
125.Na czym polega zaleta rekurencji?
126.Czy to prawda, że rekurencja w znacznym stopniu jest możliwa dzięki wykorzystaniu stosu? Odpowiedź uzasadnij.
127.Jakie są największe i najmniejsze numery przerwań w systemie komputera w standardzie PC?
128.W którym kierunku rozrasta się stos po umieszczeniu na nim wartości?
129.Dlaczego stos ma strukturę LIFO a nie FIFO?
130.Do czego służy rejestr flag?
131.Podaj przykłady zastosowania rozkazów BT, BTR, BTC, BTS?
132.Jak działa polecenie XOR na argumentach 32-bitowych?
133.Jaką operację realizuje polecenie TEST?
134.Na czym polega różnica w wykorzystaniu polecenia porównania (CMP) w stosunku do operandów ze znakiem i bez znaku?
135.Czym różni się rozkaz mikroprocesora NOT od operatora logicznego assemblera NOT?
136.Opisz czynności realizowane przez rozkaz skoku warunkowego Jwarunek.
137.Czy warunkiem testowanym przez rozkaz skoku warunkowego może być tylko jeden ze znaczników zawartych w rejestrze flag?
138.Jakie znaczenie dla optymalizacji kodu ma użycie operatora SHORT przed argumentem rozkazu skoku warunkowego?
139.Czy rozkaz LOOP ma również wariant warunkowy?
140.Przedstaw przykład rozwinięcia assemblerowego konstrukcji IF.
141.Przedstaw przykład rozwinięcia assemblerowego konstrukcji IF...ELSE.
142.Przedstaw przykład rozwinięcia assemblerowego konstrukcji WHILE.
143.Przedstaw przykład rozwinięcia assemblerowego konstrukcji REPEAT-WHILE.
144.Przedstaw przykład rozwinięcia assemblerowego konstrukcji CASE (SWITCH).
145.Jakie polecenie skoku warunkowego jest uzależnione od zawartości rejestru ogólnego przeznaczenia?
146.Czy rozkaz skoku warunkowego może być wykonany do etykiety w dowolnym miejscu tego samego segmentu?
147.Czy rozkaz skoku warunkowego może być wykonany do etykiety w dowolnym miejscu przestrzeni adresowej?
148.Jakie zastosowanie w programowaniu może mieć programowa realizacja automatu skończonego?
149.Narysuj graf ilustrujący algorytm IsDigit czyli procedurę sprawdzającą czy dany znak jest cyfrą?
150.Do czego służy dyrektywa RECORD?
151.Zadeklaruj dyrektywę RECORD datę (rok 7 bitów, miesiąc 4 bity, dzień 5 bitów) i zainicjuj ją na 2004 01 27
152.Jaką rolę dla pól bitowych odgrywają dyrektywy MASK i WIDTH?
153.Jak zmienić domyślną inicjację pola bitowego? Podaj przykład.
154.Co to jest struktura i do czego służy?
155.Podaj przykład definicji i deklaracji struktury oraz zmiany inicjalizacji domyślnej.
156.Jak można uzyskać dostęp do poszczególnych pól struktury? Podaj przykłady instrukcji assemblera.
157.Czy z pól bitowych i struktur można tworzyć tablice? Wypowiedź zilustruj przykładami.
158.Jak uniknąć powtarzania komentarzy z wnętrza makroinstrukcji przy każdym wywołaniu makra?
159.Czym grozi wykorzystanie jako parametrów aktualnych makroinstrukcji rejestrów procesora? Podaj przykład.
160.Czy mają sens makroinstrukcje złożone wyłącznie z dyrektyw assemblera? Podaj przykład.
161.W czym upraszcza tworzenie makroinstrukcji dyrektywa LOCAL? Podaj przykład.
162.W jakim celu często wywołanie procedury (funkcji) poprzedzone jest wywołaniem makroinstrukcji?
163.Do czego służy dyrektywa REPT? Podaj przykłady.
164.Jak w assemblerze zrealizować strukturę danych typu dwukierunkowa lista? Wypowiedź zilustruj przykładem.
165.Jaka jest różnica pomiędzy dyrektywami REPT i IRP?
166.W starszych wersjach procesorów kłopot programistom sprawiał niewielki zasięg skoków warunkowych (8-bitowe przesunięcie). Napisz makroinstrukcję realizującą długi skok warunkowy.
167.Napisz fragment kodu ilustrujący wykorzystanie polecenia XLAT do filtracji strumienia informacji.
168.Napisz fragment kodu ilustrujący wykorzystanie polecenia XLAT do szyfrowania tekstu.
169.Jak można przekazać parametry do procedury?
170.Podaj przykład procedury, do której parametry przekazywane są przez rejestry.
171.Podaj przykład procedury, do której parametry przekazywane są przez stos.
172.Co nazywamy ramką stosu? Jakie jest jej zastosowanie?
173.Do czego w procedurze do której parametry przekazujemy przez stos wykorzystywany jest rejestr BP. Wyjaśnij to na przykładzie.
174.Jak umożliwić wykorzystanie stosu we wnętrzu procedury do której parametry przekazano przez stos?
175.Jak usunąć parametry ze stosu po ich wykorzystaniu przez procedurę?
176.Przy współpracy procedury w assemblerze z językiem C i PASCAL za „uprzątnięcie stosu” odpowiedzialna jest procedura ....?
177.Jak procedura (funkcja) napisana w języku C i PASCAL przekazuje parametry do procedury (funkcji) wywoływanej?
178.Jaki związek z problemem przekazywania parametrów do procedur mają instrukcje procesora typu LDS, LFS itd.?
179.Jak działa i do czego służy polecenie ENTER?
180.Jak działa i do czego służy polecenie LEAVE?
181.Jak utworzyć procedurę do której przekazywana jest zmienna liczba argumentów?
182.Do czego służy dyrektywa CALL?
183.Jaka jest różnica pomiędzy dyrektywą CALL a rozkazem procesora o tej samej nazwie?
184.Jaka jest zależność pomiędzy modelem pamięci stosowanym w tworzonym programie i konsolidowanej z nim biblioteki? Odpowiedź uzasadnij lub zilustruj przykładem.
185.Jakie znaczenie dla instrukcji działąjących na ciągach ma prefiks powtórzenia?
186.Dlaczego użycie instrukcji działania na ciągu z prefiksem powtórzenia jest bardziej optymalne niż użycie instrukcji w pętli utworzonej z użyciem rozkazu skoku?
187.Do czego służy znacznik kierunku (Direction) i jaki jest jego związek z instrukcjami działającymi na ciągach?
188.Jaka jest istotna różnica pomiędzy wykorzystaniem rozkazu skoku LOOP i rozkazu działania na ciągu z prefiksem powtórzenia?
189.Uzasadnij twierdzenie, że użycie rozkazów działających na ciągach pozwala uzyskać wyższą efektywność niż tworzenie pętli programowych z użyciem instrukcji skoku.
190.Jak w assemblerze można zrealizować inkrementację lub dekrementację rejestró indeksowych?
191.Jak w assemblerze zrealizować można postinkrementację i preinkrementację? (x++ i ++x)
192.Co w istocie różni język assemblera od języka C?
193.Jak wywołana funkcja może zwrócić wartość do funkcji wywołującej?
194.Czym różni się iteracja od rekurencji z punktu widzenia implementacji w assemblerze?
195.Do czego służą tzw. przerwania BIOS? Jak z nich korzystać?
196.Jak można korzystać z biblioteki procedur systemu operacyjnego?
197.Pod jakim systemem operacyjnym musi działać program napisany w assemblerze?
198.Czy do działania programu napisanego w assemblerze konieczny jest system operacyjny? Odpowiedź uzasadnij.
199.Jaki jest związek pomiędzy platformą sprzętową na której tworzymy program w assemblerze a platformą na której będzie wykonywany?
200.W jakim języku programowania pisane są systemy operacyjne?
6
djronin