Assembler - zti.polsl.pl

Transkrypt

Assembler - zti.polsl.pl
Lista rozkazów:
1. przesyły: POB, ŁAD, DNS (=PSH) daj na stos, PZS (=POP)pobierz ze
stosu
2. arytmetyczne (pomija się problem nadmiarów lub niedomiarów): DOD,
ODE, MNO, DZI, (całkowitoliczbowe) POT (adresacja natychmiastowa)
3. skoki: SOB, SOM, SOZ, SDP (skok do podprogramu), PWR (powrót z
podprogramu)
4. we/wy: WPR WYP (bezaargumentowe, w operacji uczestniczy
akumulator wczytywane są znaki poprzez kody ASCII)
5. stop: STP
ASCII
A=65 …. Z=90; a=97, ... z=122; 0=48; spacja=32
// można stosować a: rst ‘a’, co odpowiada a: rst 97
Zadania
1. Napisać program, który przepisuje znaki z wejścia na wyjście UZ,
zamieniając małe litery na wielkie, aż do napotkania spacji.
2. Napisać program, który przepisuje znaki z wejścia na wyjście UZ, aż do
napotkania sekwencji ABC.
a. ABC ma się pojawić na wyjściu
b. ABC żadna z liter wzorca nie pojawia się na wyjściu
3. Obliczyć „N nad K” (symbol Newtona), do obliczenia n! wykorzystać
makro.
4. Napisać program pobierający z UZ cyfry aż do napotkania spacji i
dodawać je do siebie, pozostałe znaki należy pomijać. Wyznaczoną sumę
wyprowadzić na UZ. Do wyprowadzenia wykorzystać makro.
Makro ma być w dwóch wersjach z użyciem stosu i bez.
5. Zakładając, że dostępne jest makro „wyprowadz a” oraz implementując
makro „wprowadz a, blad” , które wczytuje znak po znaku liczbę
zakończoną spacją z UZ, napisać program, który wczytuje dwie liczby i
wyprowadza większą z nich.
6. Napisać program, który z UZ wczytuje N liczb zakończonych spacjami,
liczby te należy wpisać do tablicy, której pierwszy element ma adres
symboliczny TAB.
7. Dana jest dwuwymiarowa tablica TAB1 wymiaru N-wierszy, M-kolumn
zapisana w pamięci wiersz po wierszu oraz jednowymiarowa TAB2
wymiaru N. Napisać program, który wypełni tablicę TAB2 ilością liczb
podzielnych przez LICZBA znajdujących się w kolejnych wierszach
TAB1.