Programowanie w języku symbolicznym mc W
Transkrypt
Programowanie w języku symbolicznym mc W
Programowanie w języku symbolicznym m.c. W Programowanie to nadawanie algorytmowi postaci dekodowalnej i realizowalnej przez komputer. Sposoby programowania Języki zorientowane maszynowo Rozkazy maszynowe i adresy w postaci binarnej Rozkazy maszynowe i adresy w postaci symbolicznej Języki zorientowane problemowo Instrukcje symboliczne zbudowane zgodnie z potrzebami dziedziny, dla której się programuje 1. Format instrukcji języka symbolicznego [etykieta :] mnemonika_rozkazu [symboliczny_adres_argumentu] 2. Lista rozkazów DOD ODE ŁAD POB SOB SOM STP (Ak) + ((AD)) ---> Ak (Ak) - ((AD)) ---> Ak (Ak) ---> (AD) ((AD)) ---> Ak (AD) ---> L,A jeżeli Z = 1 to (AD) ---> L,A stop MNO DZI POT SDP PZP WPR WYP (Ak) * ((AD)) ---> Ak (Ak) / ((AD)) ---> Ak adresacja natychmiastowa (Ak)(AD) ----> Ak skok do podprogramu, ślad na stosie powrót z podprogramu, pobranie śladu ze stosu (UZ) (AD) ((AD)) UZ 3. Pseudorozkazy RPA RST KON rezerwuj komórkę pamięci rezerwuj komórkę pamięci; wpisz do niej stałą koniec tekstu programu w języku symbolicznym 4. Format makrodefinicji MAKRO nazwa, parametr 1,..., parametr n instrukcje tworzące makro KONM Asembler jest dwuprzebiegowy i wykorzystuje dwie tablice: T1 i T2. Tablica T1 zawiera dane o przyporządkowaniu kodom symbolicznym (mnemonikom) rozkazów, odpowiednich kodów binarnych, natomiast tablica T2, zawiera dane o przyporządkowaniu każdej etykiecie binarnego adresu absolutnego. I przejście: utworzenie tablicy T2. II przejście: przekład kolejnych instrukcji z postaci symbolicznej na binarną, w oparciu o zawartość tablic T1i T2. 1 Zadania 1. Napisać program, obliczający największy wspólny dzielnik 2 liczb całkowitych A i B (A,B > 0). 2. Napisać program w języku symbolicznym m.c.W, czytający z urządzenia zewnętrznego 60 liczb całkowitych i wyprowadza sumę nieujemnych spośród nich. 3. Napisać program, który czyta z urządzenia zewnętrznego 10 liczb całkowitych, oblicza i wyprowadza sumę kwadratów tych liczb. 4. Napisać program, który mnoży dwie liczby podawane z UZ, a wynik wyprowadza na UZ. 5. Napisać program, który oblicza następujący iloczyn: N N ILOCZYN ( K J ) N – liczba całkowita K 1 J 1 Wartość N powinna być wczytywana z Urządzenia Zewnętrznego, a wynik obliczeń powinien zostać zapisany do komórki o nazwie symbolicznej ILOCZYN. MAKRO PODPROGRAMY 6. Napisać program w jęz. symbolicznym m.c.W obliczający maksimum spośród N liczb wczytywanych z urządzenia zewnętrznego. Liczby podawane są wg. formatu: N, l1 , l2 , ... ,lN Program powinien dopuszczać do obliczeń jedynie N > 0 7. Napisać w języku symbolicznym m.c.W program obliczający wartość minimalną funkcji N Y (K X ) 2 dla x [ D , G ] K 1 8. 9. W czasie obliczeń, X zmienia się z krokiem H. Wartości N,D,G,H należy wczytać z UZ (N >= 1, D =< G, H > 0 ). Wartość minimalną funkcji i wartość X, dla której funkcja osiąga minimum, wyprowadzić na UZ. Obliczenie wartości funkcji Y zrealizować za pomocą podprogramu. W rozwiązaniu podać schematy blokowe oraz tekst programu głównego i podprogramu. Zaniedbać testowanie poprawności danych wejściowych. Napisać w języku symbolicznym m.c.W program, który czyta z UZ liczby: N, A1, B1, A2, B2, ..., a następnie oblicza i wyprowadza S1 Ai i S 2 Bi . Napisać w języku symbolicznym m.c.W program, który czyta z UZ liczbę N, a następnie oblicza i wyprowadza sumę N (((k 1) 2 1) 2 1) 2 k 1 PROGRAMY SAMOMODYFIKUJĄCE SIĘ 10. Napisać program zliczający elementy tablicy TAB wypełnionej liczbami naturalnymi. Znacznikiem końca tablicy jest wartość UJEMNA. 11. Napisać program inkrementujący zawartość kolejnych komórek tablicy T, zawierającej liczby naturalne. Znacznikiem końca tablicy jest wartość –1. 12. Napisać program zamieniający komórki N elementowej tablicy T wartości WAR na NOWA. 13. Napisać program wyznaczający sumę kwadratów elementów tablicy T zakończonej wartością A. 14. Napisać program modyfikujący elementy tablicy TAB zakończonej wartością A. a. każdy element tablicy należy podwoić b. podwoić należy tylko ujemne elementy tablicy 2