background image

1. Podaj kiedy nie jest możliwe przekazywanie parametrów do procedury za pośrednictwem 
rejestrów procesora.
Kiedy w dyrektywie USES nie został zainicjowany żaden z rejestrów. LUB II WERSJA :
Kiedy mamy zbyt mało rejestrów, jeśli mamy np. jeden to jest on odpowiedzialny za 
przetransportowanie argumentów na stos i różne zadania związane z deklaracją. Jeśli mamy dużo 
rejestrów to można nieużywanymi wprowadzić dane do procedury. 
2. Podaj jaki jest cel zastosowania dyrektywy PROC i ENDP.
Dyrektywa PROC deklaruje procedurę z opcjonalną listą parametrów.
W obrębie procedury (definicja PROC/ENDP) na czas wykonania procedury
wytwarza umieszczone na stosie zmienne. Pomaga dzielić kod programu na moduły i zapewnia 
lokalność zmiennych.
3. Podaj możliwą implementację pętli WHILE za pomocą języka asembler.
Przykładowo:

top:cmp eax,ebx ; sprawdź warunek pętli
jae next ; fałsz? Opuść pętlę
inc eax ; program pętli
jmp top ; powtarzaj pętlę
next:

4. Podaj jakie są sposoby usuwania ze stosu parametrów procedury.
   Za pomocą dyrektywy .Model i użyciu specyfikatora języka stdcall lub pascal.
5. Wyjaśnij do czego służy dyrektywa INVOKE.
  Makroasembler umieści w kodzie programu instrukcje zapisania parametrów na stos i wywołanie 
procedury.
6. Jakie działania na blokach programu umożliwiają asembler i linker?
   -Asembler grupuje części kodu/danych, które są rozproszone w programie źródłowym, a 
posiadają ten sam charakter. Dzięki tej funkcjonalności – związane ze sobą dane i kod mogą być 
umieszczone blisko siebie, dla lepszej czytelności i panowania nad programem. Asembler logicznie 
rearanżuje bloki grupując składowe. 
   -linker łączy poszczególne bloku programu podczas linkowania. 
7. Podaj co składa się na opis procesu.
  -realizacja wykonywania programu
  -wykonanie/wstrzymanie w dowolnym momencie
  -równoległość – przełączanie kontekstowe
  -niezależność wykorzystanie mechanizmów CPU dla zapobieżenia bezpośredniego 
korzystania z hardware’u lub komórek o ustalonych adresach
  - tryb użytkownika i tryb jądra
  - ochrona pamięci.
8. Wyjaśnij jaki jest cel stosowania dyrektywy PROTO.
   Definiuje prototyp dalej umieszczonej procedury. Informuje asembler ile i jakich argumentów
   może spodziewać się w definicji procedury (możliwość sprawdzania argumentów przez 
asembler).
9. Wyjaśnij w jaki sposób można rozgałęzić program na podstawie stanu bitu słowa pamięci?
   Za pomocą instrukcji test i instrukcji warunkowej.
10. Podaj możliwą implementację utworzenia tablicy złożonej z wielu pól.
 

  

symbol RECORD n_pola:długość [wyrażenie], [n_pola:długość

[wyrażenie]] przykładowo: DATE RECORD YR:16, MO:8, DY:8 

          EARN DATE 6 DUP (2006,1,1) 

ALBO :  ORG:
STAB DB 1190 DUP (?) 
ORG STAB 
SYMBOL DB 6 DUP (?) 
VALUE DW ? 
FLAGS DB 2 DUP (?) 
ORG STAB+1190 

Przy użyciu EQU :
STAB DB 1190 DUP (?) 
SYMBOL EQU STAB 
VALUE EQU STAB+6 
FLAG EQU STAB+10