68
4. Program ćwiczeń
Opis rozkazu w postaci pliku typu RTX wygląda następująco: { Rozkaz wypisujący znak z Ak na monitor }
ROZKAZ TYP - EW MNE - WYP KOD - 101
OPIS - '(Ak} -> OW(Ad)'
AKCJA
wai czyt wys il; wyek wewy; aut; czekaj:
wyg CZY STN OmagS DALEJ czekaj ; wyl wea ;
KONIEC
Po zaprojektowaniu rozkazów wejścia-wyjścia należy podać tekst programu realizującego podane zadanie. Program powinien wczytywać kolejne znaki z urządzenia wejściowego do akumulatora i wyprowadzać je na urządzenie wyjściowe. Następnie powinien sprawdzać warunek zakończenia, czyli porównywać zawartość akumulatora z liczbą 27. W przypadku stwierdzenia równości należy zakończyć działanie programu. Porównanie jest tu zrealizowane przez odejmowanie stałej 27 od akumulatora. Po tych krótkich wyjaśnieniach można podać treść programu w asemblerze.
pętla: |
WPR 0 |
{ wczytanie kolejnego znaku } |
WYP 10001 |
{i wypisanie go na ekranie ) | |
ODE Esc |
{ porównanie ze znakiem Esc } | |
SOZ konc |
{ jeśli równe, to koniec } | |
SOB pątia |
{ jeśli nfo, to ne początek pąt/i f | |
konc: |
SOB konc | |
Esc: |
RST 27D KON |
Błędy sygnalizowane przez kompilator plików opisu rozkazu
1. Oczekiwane słowro : 'ROZKAZ'
2. Nieoczekiwany koniec pliku
3. Oczekiwane słowo : 'AKCJA'
4. Oczekiwany znak : ’ = ’
5. Niewłaściwa postać mnemoniki
6. Niewłaściwy typ m.c.
7. Niewłaściwa postać kodu rozkazu
8. Niewłaściwa długość kodu rozkazu
9. Oczekiwany znak : ’
10. Oczekiwany znak : lub nieznany identyfikator
11. Oczekiwany znak :
12. Oczekiwane słowo 'DALEJ*
13. Oczekiwany zapis warunku
14. Konfliktowe użycie raikrosygnałów w jednym takcie
15. Powtórzenie etykiety
16. Oczekiwana definicja typu m.c. : 'TYP = ...’
17. Oczekiwana definicja nazwy symbolicznej rozkazu : 'MNE = ...’
18. Etykieta dopuszczalna tylko na początku taktu
19. Oczekiwane słowo : 'KONIEC'
20. Niedopuszczalna postać identyfikatora
21 Nieznana etykieta
22. Sygnał niedostępny dla lego typu m.c.