noweasmy.doc

(39 KB) Pobierz
11

11. Wymień i scharakteryzuj atrybuty nazw w ASM

 

$ w nazwie nie może być więcej niż 247 znaków (w MASM)

$ nie ma różnicy między dużymi i małymi literami

$ pierwszy znak może być jedynie literą lub symbolem @ _ $, chociaż należy unikać @ bo korzystają z niego wstępnie zdefiniowane nazwy symboli. Kolejne znaki mogą być cyframi.

$ nazwa nie może być identyczna z zarezerwowanymi słowami w asemblerze

 

...a może chodzi tu o to:

 

DB – Define Byte – alokuje miejsce dla jednej lub więcej wartości 8-bitowych (bajtowych). Składnia:

Nazwa DB wartosc1, wartosc2,….

Zakres wartości: -128 do 127 albo 0 do 255

 

DW – Define Word – alokuje miejsce dla jednej lub więcej wartości 16-bitowych (pojedyncze słowo). Składnia:

Nazwa DW wartosc1, wartosc2,….

Zakres wartości: -32768 do 32767 albo 0 do 65535

 

DD – Define Doubleword – alokuje miejsce dla jednej lub więcej wartości 32-bitowych (podwójne słowo). Składnia:

Nazwa DD wartosc1, wartosc2,….

Zakres wartości: 0 do 0FFFFFFFFh

 

12 W jaki sposób atrybuty zewnętrzności i lokalności (globalności) zwiększają możliwości konsolidacji programu napisanego w asemblerze?

 

Konsolidacja z modułami bibliotecznymi wymaga dopasowania do modelu zastosowanego w bibliotekach (dostępne są biblioteki w wersjach z różnymi modelami pamięci – trzeba dobrać wywołania do wybranej biblioteki.  ??????

 

13. W jaki sposób można w ASM zrealizować typ wyliczeniowy?

 

Typ wyliczeniowy definiuje zbiór identyfikatorów oznaczających poszczególne wartości przez ich wyliczenie. Pierwszy identyfikator ma wartość 0, kolejny 1 itd.

Więc prawdopodobnie chodzi tu o dyrektywy RECORD / STRUC (patrz  pyt 150, 154)

 

14. Wymień trzy cele wykorzystania stosu w praktyce pisania programów w asemblerze

* zapisanie danych na stosie – stosowane gdy mamy zbyt małą ilość potrzebnych rejestrów, należy pamiętać o strukturze stosu (LIFO – last in first out)

* Przekazywanie parametrów między procedurami lub z programu do podprogramu (i na odwrót) – przekazywanie pomiędzy programami jest wygodne gdyż stos umożliwia przesłanie o wiele więcej danych niż rejestry

* zapis wartości najważniejszych rejestrów w przypadku np. wywołania podprogramu (polecenie PUSHA – potem aby zdjąć POPA)

 

15. Napisz przykładowy program realizujący przekazywanie parametrów pomiędzy procedurami przez wspólne obszary pamięci.

 

Patrz slajdy od 27

 

16. W jaki sposób w języku asm definiujemy ciągi i tablice jednowymiarowe? Podaj przykłady - popatrz sobie na slajd 50

@ bufor o stałej  długości – niewykorzystane miejsce zapełnia sobie spacjami

 

db ‘ to jest bufor      ‘

 

@ bufor z deskryptorem długości – na początku ciągu może być umieszczony deskryptor określający długość ciągu, pozycje nieużywane mają nieokreśloną wartość (wykorzystywany w TurboPascalu)

 

db 0Dh ; db ‘ to jest bufor    ‘

 

@ bufor zakończony terminatorem – zmienna długość ograniczona wielkością zarezerwowanej pamięci (stosowany w C)

 

db ‘ to jest bufor$’

 

@ bufor zakończony pustym bajtem – na końcu ciągu znajduje się bajt o zerowej wartości, rzeczywista długość ciągu zmienia się od 0 do wartości zadeklarowanej w długości ciągu (wykorzystywany w C i w formacie dll)

 

@ ciąg o zmiennej długości – definiowany przez 32 bitowy deskryptor, który zawiera wskaźnik do rzeczywistych znaków w ciągu – można zmieniać jego długość co wymaga dodatkowej ilości pamięci

 

17. Czy to prawda, że rekurencja w znacznym stopniu jest możliwa dzięki wykorzystaniu stosu? Odp zilustruj przykładem i uzasadnij.

 

Rozwiązania te są podobne – slajd 35

 

18. Czym różni się za[pis koloru piksela bezpośrednio przez RGB i z wykorzystaniem palety barw?

 

Zapis piksela przez RGB polega na bezpośrednim zapisaniu jednego z 256 odcieni (każdy odcień zajmuje jeden bajt=3 bajty dla piksela) kolorów:Czerwonego (R) zielonego(G) i niebieskiego(B) do pliku graficznego, w przypadku takiego formatu zapisu nie musimy definiować ile jest kolorów dla piksela w danym pliku, liczba ta jest z góry zdefiniowana (256x256x256=16M). Ogranicza to paletę barw a (rzadko kiedy )powoduje zbyt wielką ilość informacji zawartych w pliku(zapis czarno-biały). Przykładem takiego typu pliku jest format BMP.

Zapis piksela przez paletę barw różni się od RGB tym, że dla każdego piksela jest określony kolor zapisany w dołączonej do pliku palecie barw, która opisuje ilość bitów przypisanych każdej składowej kolorystycznej. Tak więc komputer musi dla każdego pliku zapisanego w ten sposób wyznaczyć kolor każdego piksela na podstawie niestandardowego opisu, jakim jest paleta barw.

 

19.Przedstaw przykład rozwinięcia assemblerowego konstrukcji SWITCH zgodnej ze standardem C.

 

enum liczba {1,2,3};

 

{

 

switch(liczba)

 

    {

    case 1:

    case 2:

    printf("Nie lubie poczatku tygodnia\n");

    break;

    case 3:

    printf("Lubie weekend!\n");

    break;

    }

}

 

cmp              ax, 1

je              skok1

cmp              ax, 2

je              skok2

..

skok1:

..

skok2:

..

 

20 Jak można korzystać z biblioteki procedur BIOS i systemu operacyjnego?

 

BIOS i DOS zawierają procedury upraszczające obsługę WE-WY oraz podstawowe zadania systemowe (obsługa grafiki, dysku)

Sposób 1: aplikacja zawiera rozkaz INT przerwanie programowe

INT 10h grafika,  INT 16h klawiatura...

Sposób 2: przerwanie sprzętowe urządzenie wysyła sygnał do PIC

Zgłoś jeśli naruszono regulamin