Efekt K01: Student potrafi pozyskiwać informacje z literatury oraz innych właściwie dobranych źródeł (w tym dokumentacji), także w języku angielskim
1. (5 points) Dysponując fragmentem dokumentacji z MSDN i fragmentem kodu z danymi wskaż poprawne użycie funkcji WriteConsoleOutputCharacter
WriteConsoleOutputCharacter function Copies a number of characters to consecutive cells of a console screen buffer, beginning at a specified location.
Syntax
BOOL WINAPI WriteConsoleOutputCharacter( _In_ HANDLE hConsoleOutput, _In_ LPCTSTR lpCharacter, _In_ DWORD nLength, _In_ COORD dwWriteCoord, _Out_ LPDWORD lpNumberOfCharsWritten );
(Opisy parametrów pominięte dla zachowania układu strony - tekst widoczny na screenie)
Efekt W02: Student zna rolę i zastosowanie asemblerów w systemach informatycznych (także konstrukcja programu asemblerowego i jego przetwarzanie)
1. (5 points) Zastosowanie programowania asemblerowego (zaznacz prawidłowe odpowiedzi)
2. (5 points) Jakie etapy są potrzebne w utworzeniu pliku .exe w sytuacji gdy program składa się tylko z jednego pliku .asm?
Programowanie niskopoziomowe Kolokwium 1
3. (5 points) Co oznacza „stdcall” w kontekście MASM32?
4. (5 points) Co się stanie, jeśli linker nie znajdzie symbolu zewnętrznego (external)?
5. (5 points) Etap realizacji odwołań do symboli zewnętrznych poprzez związanie tych odwołań z symbolami udostępnianymi przez moduły, w których je zdefiniowano, to:
6. (5 points) Jaka jest rola instrukcji ret/ret N w procedurze (zaznacz wszystkie pasujące odpowiedzi):
Efekt W01: Student zna architekturę procesorów z rodziny x86 i sposoby programowania niskopoziomowego na tych procesorach
(10) 1. Określ czy następujące linie kodu są poprawne w MASM32 (zaznacz prawidłową odpowiedź):
.data zmA DWORD 1 zmB DWORD 2 zmC WORD 3 zmD DW ? tablica db 1,2,3,4,0 .code
mov eip,zmA Nie (Tak/Nie)
mov esi,zmC Nie (Tak/Nie)
push al Nie (Tak/Nie)
cdq Tak (Tak/Nie)
add eax,zmB Tak (Tak/Nie)
mov zmA,zmD Nie (Tak/Nie)
xor edx,edx Tak (Tak/Nie)
div eax,ebx Nie (Tak/Nie)
cld Tak (Tak/Nie)
pop zmA Tak (Tak/Nie)
mov al,tablica[1] Tak (Tak/Nie)
(5) 2. Które instrukcje są częścią zestawu x86?
(5) 3. Który z poniższych rejestrów odpowiada za przechowywanie wskaźnika stosu w procesorach x86?
Programowanie niskopoziomowe Kolokwium 1
4. Czym jest segmentacja w architekturze x86?
5. Co oznacza dyrektywa EXTERN w MASM32?
6. Jaką funkcję pełni WinMain w programach MASM32?
7. Jakie rejestry są wykorzystywane przez koprocesor w x86 i dostępne dla programisty w koprocesorze?
8. Czym charakteryzuje się architektura x86?
(5) 9. Jaka będzie zawartość rejestru DL po wykonaniu następującego fragmentu kodu
mov dl,5 shl dl,2
(5) 10. Jaka będzie zawartość rejestru EAX po wykonaniu następującego fragmentu kodu
xor edx,edx cmp edx,0 jnz e1 mov eax,1 jmp e2 e1: mov eax,2 inc eax e2:
(5) 11. Rozkaz, który zapisuje wartość z odpowiednio EAX do miejsca w pamięci wskazywanego przez EDI to:
Programowanie niskopoziomowe Kolokwium 1
(5) 12. Jaka będzie zawartość rejestru AL po wykonaniu następującego fragmentu kodu
mov al,6 or al,00110000b
(5) 13. Jaka będzie zawartość rejestru EAX po wykonaniu następującego fragmentu kodu:
mov eax,0 mov ecx,4 xor ecx,ecx petla: add eax,1 loop petla
(5) 14. Jaka będzie wartość rejestru dl po wykonaniu następującego fragmentu kodu?
mov dl,3Fh ror dl,4
(5) 15. Jaka będzie wartość rejestru ax po wykonaniu następującego fragmentu kodu?
.data myDouble DWORD 12345678h .code mov ax,WORD PTR [myDouble+2]
(5) 16. Rozkaz, wykonujący dzielenie z zachowaniem znaku to:

---------------------------------------- IDIV
[5] Jaka będzie wartość rejestru ecx po wykonaniu następującego fragmentu kodu?
.data array1 WORD 30 DUP(?),0,0 .code mov ecx,SIZEOF array1