Wykonanie rozkazu

Z MERA 400 wiki
Wersja z dnia 16:17, 10 sie 2012 autorstwa Amo (dyskusja | edycje) (Created page with "=== Wykonanie rozkazu === Na wykonanie rozkazu składają się następujące fazy: # Pobranie rozkazu z miejsca pamięci operacyjnej wskazanej zawartością IC. Jeśli Q=0 ro...")
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacji Przejdź do wyszukiwania

Wykonanie rozkazu

Na wykonanie rozkazu składają się następujące fazy:

  1. Pobranie rozkazu z miejsca pamięci operacyjnej wskazanej zawartością IC. Jeśli Q=0 rozkaz jest pobierany z bloku pamięci systemowej, jeśli Q=1 - z bloku pamięci wskazanego zawartością rejestru NB
  2. Określenie efektywności rozkazu.
  3. Wyznaczenie argumentu efektywnego
  4. Wykonanie czynności określonej kodem rozkazu
  5. Jeśli rozkaz nie był rozkazem skoku i nie wystąpiły przypadki szczególne, IC zwiększany jest o długość wykonanego rozkazu

Po zakończeniu każdego cyklu rozkazowego, w zależności od warunków zaistniałych w minikomputerze, następuje przejście do jednej z następujących czynności:

  • zatrzymanie minikomputera w stanie STOP w wyniku wyłączenia klucza START
  • wykonanie przerwania
  • przejście w stan CZEKAJ w wyniku rozkazu HLT
  • wykonanie następnego cyklu rozkazowego

Efektywność rozkazu

Rozkaz jest nieefektywny (nie zostaje wykonany) w następujących przypadkach:

  • błędny kod operacji
  • po raz czwarty użyty został rozkaz MD
  • rozkaz nielegalny został użyty w programie użytkowym

W przypadku napotkania rozkazu nieefektywnego wykonywane są następujące czynności:

  • wyzerowanie modyfikatora MOD
  • wpisanie 1 do pozycji 6 rejestru zgłoszeń przerwań RZ
  • natychmiastowe zakończenie rozkazu

Wyznaczenie argumentu efektywnego