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 (?)

Przy użyciu EQU :

ORG STAB

STAB DB 1190 DUP (?)

SYMBOL DB 6 DUP (?)

SYMBOL EQU STAB

VALUE DW ?

VALUE EQU STAB+6

FLAGS DB 2 DUP (?)

FLAG EQU STAB+10

ORG STAB+1190