3012
edycji
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 22: | Linia 22: | ||
| R/A/, R/B/, R/C/ || rejestr uniwersalny o numerze wskazanym wartością odpowiedniego pola rozkazu | | R/A/, R/B/, R/C/ || rejestr uniwersalny o numerze wskazanym wartością odpowiedniego pola rozkazu | ||
|- | |- | ||
| R/A/<sub> | | R/A/<sub>i</sub> || i-ty bit rejestru uniwersalnego wskazanego wartością pola rozkazu | ||
|- | |- | ||
| R/A/<sub> | | R/A/<sub>i÷j</sub> || bity i...j rejestru uniwersalnego wskazanego wartością pola rozkazu | ||
|- | |- | ||
| RZ || rejestr zgłoszeń przerwań | | RZ || rejestr zgłoszeń przerwań | ||
Linia 63: | Linia 63: | ||
==Lista Rozkazów== | ==Lista Rozkazów== | ||
Uwagi do listy rozkazów: | |||
# W poniższej tabeli za '''n''' należy podstawić przyrostek w zależności od lokalizacji argumentu normalnego i bitu D-modyfikacji (patrz: [[Wyznaczanie argumentu efektywnego]]): | |||
* R dla D=0, C≠0 | |||
* A dla D=1, C≠0 | |||
* D dla D=0, C=0 | |||
* I dla D=1, C=0 | |||
# Jeśli C=0, to zamiast rC występuje M (słowo następne za słowem rozkazowym) | |||
# argument rB nie występuje w przypadku B=0 lub gdy rozkaz nie może ulegać B-modyfikacji | |||
{| class="wikitable" | {| class="wikitable" | ||
! Lp. !! Mnemonik !! Źródłosłów !! Opis !! Treść !! Ustaw<br>wskaźniki | ! Lp. !! Mnemonik !! Źródłosłów !! Opis !! Treść !! Ustaw<br>wskaźniki | ||
|- | |- | ||
| 1 || '''LWn''' || Load Word || Umieść w rejestrze || R/A/ := N | | 1 || '''LWn, rA, rC, Rb''' || Load Word || Umieść w rejestrze || R/A/ := N | ||
|- | |- | ||
| 2 || '''LWT''' || Load to Word paremeTer || Umieść krótki argument || R/A/ := T | | 2 || '''LWT, rA, T''' || Load to Word paremeTer || Umieść krótki argument || R/A/ := T | ||
|- | |- | ||
| 3 || '''LWS''' || Load to Word Short || Pobierz względnie || R/A/ := S/IC+T/ | | 3 || '''LWS, rA, T''' || Load to Word Short || Pobierz względnie || R/A/ := S/IC+T/ | ||
|- | |- | ||
| 4 || '''LDn''' || Load Double word || Umieść w R1 i R2 || [R1, R2] := [S/N/, S/N+1/] | | 4 || '''LDn, rC, rB''' || Load Double word || Umieść w R1 i R2 || [R1, R2] := [S/N/, S/N+1/] | ||
|- | |- | ||
| 5 || '''LFn''' || Load Floating point number || Umieść w R1, R2 i R3 || [R1, R2, R3] := [S/N/, S/N+1/, S/N+2/] | | 5 || '''LFn, rC, Rb''' || Load Floating point number || Umieść w R1, R2 i R3 || [R1, R2, R3] := [S/N/, S/N+1/, S/N+2/] | ||
|- | |- | ||
| 6 || '''LAn''' || Load All registers || Umieść w R1, R2, ..., R7 || [R1, R2, ..., R7] := [S/N/, S/N+1/, ..., S/N+6/] | | 6 || '''LAn, rC, rB''' || Load All registers || Umieść w R1, R2, ..., R7 || [R1, R2, ..., R7] := [S/N/, S/N+1/, ..., S/N+6/] | ||
|- | |- | ||
| 7 || '''LLn''' || Load Last three registers || Umieść w R5, R6 i R7 || [R5, R6, R7] := [S/N/, S/N+1/, S/N+2/] | | 7 || '''LLn, rC, rB''' || Load Last three registers || Umieść w R5, R6 i R7 || [R5, R6, R7] := [S/N/, S/N+1/, S/N+2/] | ||
|- | |- | ||
| 8 || '''LSn''' || Load Selective || Umieść przez maskę w R7 || R/A/ := [R/A/∧<span style="text-decoration:overline;">R7</span>] ∨ [N∧R7] | | 8 || '''LSn, rA, rC, rB''' || Load Selective || Umieść przez maskę w R7 || R/A/ := [R/A/∧<span style="text-decoration:overline;">R7</span>] ∨ [N∧R7] | ||
|- | |- | ||
| 9 || '''TWn''' || Take Word || Umieść według NB || R/A/ := S/N,NB/ | | 9 || '''TWn, rA, rC, rB''' || Take Word || Umieść według NB || R/A/ := S/N,NB/ | ||
|- | |- | ||
| 10 || '''TDn''' || Take Double word || Pobierz do R1 i R2 || [R1, R2] := [S/N;NB/, S/N+1;NB/] | | 10 || '''TDn rC, rB''' || Take Double word || Pobierz do R1 i R2 || [R1, R2] := [S/N;NB/, S/N+1;NB/] | ||
|- | |- | ||
| 11 || '''TFn''' || Take Floating point number || Pobierz do R1, R2, R3 || [R1, R2, R3] := [S/N;NB/, S/N+1;NB/, S/N+2;NB/] | | 11 || '''TFn, rC, rB''' || Take Floating point number || Pobierz do R1, R2, R3 || [R1, R2, R3] := [S/N;NB/, S/N+1;NB/, S/N+2;NB/] | ||
|- | |- | ||
| 12 || '''TAn''' || Take to All registers || Pobierz do R1, R2, ..., R7 || [R1, R2, ..., R7] := [S/N;NB/, S/N+1;NB/, ..., S/N+6;NB/] | | 12 || '''TAn, rC, rB''' || Take to All registers || Pobierz do R1, R2, ..., R7 || [R1, R2, ..., R7] := [S/N;NB/, S/N+1;NB/, ..., S/N+6;NB/] | ||
|- | |- | ||
| 13 || '''TLn''' || Take to Last three registers || Pobierz do R5, R6, R7 || [R5, R6, R7] := [S/N;NB/, S/N+1;NB/, S/N+2;NB/] | | 13 || '''TLn, rC, rB''' || Take to Last three registers || Pobierz do R5, R6, R7 || [R5, R6, R7] := [S/N;NB/, S/N+1;NB/, S/N+2;NB/] | ||
|- | |- | ||
| 14 || '''RWn''' || Remember Word || Pamiętaj rejestr || S/N/ := R/A/ | | 14 || '''RWn, rA, rC, rB''' || Remember Word || Pamiętaj rejestr || S/N/ := R/A/ | ||
|- | |- | ||
| 15 || '''RWS''' || Remember Word Short || Pamiętaj względnie || S/IC+N/ := R/A/ | | 15 || '''RWS rA, T''' || Remember Word Short || Pamiętaj względnie || S/IC+N/ := R/A/ | ||
|- | |- | ||
| 17 || '''RDn''' || Remember Double word || Pamiętaj R1 i R2 || [S/N/, S/N+1/] := [R1, R2] | | 17 || '''RDn, rC, rB''' || Remember Double word || Pamiętaj R1 i R2 || [S/N/, S/N+1/] := [R1, R2] | ||
|- | |- | ||
| 18 || '''RAn''' || Remember All registers || Pamiętaj R1, R2, ..., R7 || [S/N/, S/N+1/, ..., S/N+6/] := [R1, R2, ..., R7] | | 18 || '''RAn, rC, rB''' || Remember All registers || Pamiętaj R1, R2, ..., R7 || [S/N/, S/N+1/, ..., S/N+6/] := [R1, R2, ..., R7] | ||
|- | |- | ||
| 19 || '''RLn''' || Remember Last three registers || Pamiętaj R5, R6, R7 || [S/N/, S/N+1/, S/N+2/] := [R5, R6, R7] | | 19 || '''RLn, rC, rB''' || Remember Last three registers || Pamiętaj R5, R6, R7 || [S/N/, S/N+1/, S/N+2/] := [R5, R6, R7] | ||
|- | |- | ||
| 20 || '''PWn''' || Put Word || Pamiętaj według NB || S/N;NB/ := R/A/ | | 20 || '''PWn, rA, rC, rB''' || Put Word || Pamiętaj według NB || S/N;NB/ := R/A/ | ||
|- | |- | ||
| 21 || '''PDn''' || Put Double word || Prześlij R1 i R2 || [S/N;NB/, S/N+1;NB/] := [R1, R2] | | 21 || '''PDn, rC, rB''' || Put Double word || Prześlij R1 i R2 || [S/N;NB/, S/N+1;NB/] := [R1, R2] | ||
|- | |- | ||
| 22 || '''PFn''' || Put Floating point number || Prześlij R1, R2 i R3 || [S/N;NB/, S/N+1;NB/, S/N+2;NB/] := [R1, R2, R3] | | 22 || '''PFn, rC, rB''' || Put Floating point number || Prześlij R1, R2 i R3 || [S/N;NB/, S/N+1;NB/, S/N+2;NB/] := [R1, R2, R3] | ||
|- | |- | ||
| 23 || '''PAn''' || Put All registers || Prześlij R1, R2, ..., R7 || [S/N;NB/, S/N+1;NB/, ..., S/N+6;NB/] := [R1, R2, ..., R7] | | 23 || '''PAn, rC, rB''' || Put All registers || Prześlij R1, R2, ..., R7 || [S/N;NB/, S/N+1;NB/, ..., S/N+6;NB/] := [R1, R2, ..., R7] | ||
|- | |- | ||
| 24 || '''PLn''' || Put Last three registers || Prześlij R5, R6, R7 || [S/N;NB/, S/N+1;NB/, S/N+2;NB/] := [R5, R6, R7] | | 24 || '''PLn, rC, rB''' || Put Last three registers || Prześlij R5, R6, R7 || [S/N;NB/, S/N+1;NB/, S/N+2;NB/] := [R5, R6, R7] | ||
|- | |- | ||
| 25 || '''RZn''' || Remember Zero || Zeruj słowo w pamięci || S/N/ := 0 | | 25 || '''RZn, rC, rB''' || Remember Zero || Zeruj słowo w pamięci || S/N/ := 0 | ||
|- | |- | ||
| 26 || '''RIn''' || Remember and Increment || Umieść w pamięci i dodaj 1 || S/R/A// := N <br>R/A/ := R/A/ + 1 | | 26 || '''RIn, rA, rC, rB''' || Remember and Increment || Umieść w pamięci i dodaj 1 || S/R/A// := N <br>R/A/ := R/A/ + 1 | ||
|- | |- | ||
| 27 || '''AWn''' || Add Word || Dodaj || R/A/ := R/A/ + N || Z, M, V, C | | 27 || '''AWn, rA, rC, rB''' || Add Word || Dodaj || R/A/ := R/A/ + N || Z, M, V, C | ||
|- | |- | ||
| 28 || '''AWT''' || Add to Word parameTer || Dodaj krótki argument || R/A/ := R/A/ + T || Z, M, V, C | | 28 || '''AWT, rA, T''' || Add to Word parameTer || Dodaj krótki argument || R/A/ := R/A/ + T || Z, M, V, C | ||
|- | |- | ||
| 29 || '''ACn''' || Add word with Carry || Dodaj z przeniesieniem || R/A/ := R/A/ + N + C || Z, M, V, C | | 29 || '''ACn, rA, rC, rB''' || Add word with Carry || Dodaj z przeniesieniem || R/A/ := R/A/ + N + C || Z, M, V, C | ||
|- | |- | ||
| 30 || '''SWn''' || Subtract Word || Odejmij || R/A/ := R/A/ - N || Z, M, V, C | | 30 || '''SWn, rA, rC, rB''' || Subtract Word || Odejmij || R/A/ := R/A/ - N || Z, M, V, C | ||
|- | |- | ||
| 31 || '''CWn''' || Compare Word || Porównaj || R/A/ >=< N || L, E, G | | 31 || '''CWn, rA, rC, rB''' || Compare Word || Porównaj || R/A/ >=< N || L, E, G | ||
|- | |- | ||
| 32 || '''CWT''' || Compare Word to parameTer || Porównaj z krótkim arg. || R/A/ >=< T || L, E, G | | 32 || '''CWT, rA, T''' || Compare Word to parameTer || Porównaj z krótkim arg. || R/A/ >=< T || L, E, G | ||
|- | |- | ||
| 33 || '''NGA''' || NeGation Arithmetic || Neguj arytmetycznie || R/A/ := <span style="text-decoration:overline;">R/A/</span>+1 || Z, M, V, C | | 33 || '''NGA, rA''' || NeGation Arithmetic || Neguj arytmetycznie || R/A/ := <span style="text-decoration:overline;">R/A/</span>+1 || Z, M, V, C | ||
|- | |- | ||
| 34 || '''NGC''' || NeGation with Carry || Neguj z przeniesieniem || R/A/ := <span style="text-decoration:overline;">R/A/</span>+C || Z, M, V, C | | 34 || '''NGC, rA''' || NeGation with Carry || Neguj z przeniesieniem || R/A/ := <span style="text-decoration:overline;">R/A/</span>+C || Z, M, V, C | ||
|- | |- | ||
| 35 || '''ADn''' || Add Double word || Dodaj liczby długie || [R1, R2] := [R1, R2] + [S/N/, S/N+1/] || Z, M, V, C | | 35 || '''ADn, rC, rB''' || Add Double word || Dodaj liczby długie || [R1, R2] := [R1, R2] + [S/N/, S/N+1/] || Z, M, V, C | ||
|- | |- | ||
| 36 || '''SDn''' || Subtract Double word || Odejmij liczby długie || [R1, R2] := [R1, R2] - [S/N/, S/N+1/] || Z, M, V, C | | 36 || '''SDn, rC, rB''' || Subtract Double word || Odejmij liczby długie || [R1, R2] := [R1, R2] - [S/N/, S/N+1/] || Z, M, V, C | ||
|- | |- | ||
| 37 || '''MWn''' || Multiply Words || Mnóż || [R1, R2] := R2 × S/N/ || Z, M, V | | 37 || '''MWn, rC, rB''' || Multiply Words || Mnóż || [R1, R2] := R2 × S/N/ || Z, M, V | ||
|- | |- | ||
| 38 || '''DWn''' || Divide Words || Dziel || R2 := [R1, R2] : S/N/ <br>R1 := reszta || Z, M | | 38 || '''DWn, rC, rB''' || Divide Words || Dziel || R2 := [R1, R2] : S/N/ <br>R1 := reszta || Z, M | ||
|- | |- | ||
| 39 || '''AFn''' || Add Floating point numbers || Dodaj liczby zmiennoprzecinkowe || [R1, R2, R3] := [R1, R2, R3] + [S/N/, S/N+1/, S/N+2/] || Z, M, C | | 39 || '''AFn, rC, rB''' || Add Floating point numbers || Dodaj liczby zmiennoprzecinkowe || [R1, R2, R3] := [R1, R2, R3] + [S/N/, S/N+1/, S/N+2/] || Z, M, C | ||
|- | |- | ||
| 40 || '''SFn''' || Subtract Floating point numbers || Odejmij liczby zmennorzecinkowe || [R1, R2, R3] := [R1, R2, R3] - [S/N/, S/N+1/, S/N+2/] || Z, M, C | | 40 || '''SFn, rC, rB''' || Subtract Floating point numbers || Odejmij liczby zmennorzecinkowe || [R1, R2, R3] := [R1, R2, R3] - [S/N/, S/N+1/, S/N+2/] || Z, M, C | ||
|- | |- | ||
| 41 || '''MFn''' || Multiply Floating point numbers || Pomnóż liczby zmennorzecinkowe || [R1, R2, R3] := [R1, R2, R3] × [S/N/, S/N+1/, S/N+2/] || Z, M, C | | 41 || '''MFn, rC, rB''' || Multiply Floating point numbers || Pomnóż liczby zmennorzecinkowe || [R1, R2, R3] := [R1, R2, R3] × [S/N/, S/N+1/, S/N+2/] || Z, M, C | ||
|- | |- | ||
| 42 || '''DFn''' || Divide Floating point numbers || Podziel liczby zmennorzecinkowe || [R1, R2, R3] := [R1, R2, R3] : [S/N/, S/N+1/, S/N+2/] || Z, M, C | | 42 || '''DFn, rC, rB''' || Divide Floating point numbers || Podziel liczby zmennorzecinkowe || [R1, R2, R3] := [R1, R2, R3] : [S/N/, S/N+1/, S/N+2/] || Z, M, C | ||
|- | |- | ||
| 43 || '''NRF''' || NoRmalize Floating point number || Normalizuj || [R1, R2, R3] := znormalizowana liczba zmiennoprzecinkowa | | 43 || '''NRF''' || NoRmalize Floating point number || Normalizuj || [R1, R2, R3] := znormalizowana liczba zmiennoprzecinkowa | ||
|- | |- | ||
| 44 || '''ORn''' || Or Register || Dodaj logicznie || R/A/ := R/A/ ∨ N || Z | | 44 || '''ORn, rA, rC, rB''' || Or Register || Dodaj logicznie || R/A/ := R/A/ ∨ N || Z | ||
|- | |- | ||
| 45 || '''OMn''' || Or Memory || Dodaj logicznie do pamięci ||S/N;NB/ := S/N;NB/ ∨ R/A/ || Z | | 45 || '''OMn, rA, rC, rB''' || Or Memory || Dodaj logicznie do pamięci ||S/N;NB/ := S/N;NB/ ∨ R/A/ || Z | ||
|- | |- | ||
| 46 || '''NRn''' || aNd in Register || Pomnóż logicznie || R/A/ := R/A/ ∧ N || Z | | 46 || '''NRn, rA, rC, rB''' || aNd in Register || Pomnóż logicznie || R/A/ := R/A/ ∧ N || Z | ||
|- | |- | ||
| 47 || '''NMn''' || aNd in Memory || Pomnóż logicznie do pamięci || S/N;NB/ := S/N;NB/ ∧ R/A/ || Z | | 47 || '''NMn, rA, rC, rB''' || aNd in Memory || Pomnóż logicznie do pamięci || S/N;NB/ := S/N;NB/ ∧ R/A/ || Z | ||
|- | |- | ||
| 48 || '''XRn''' || eXclusive or in Register || Różnica symetryczna || R/A/ := R/A/ <strike>·</strike> N || Z | | 48 || '''XRn, rA, rC, rB''' || eXclusive or in Register || Różnica symetryczna || R/A/ := R/A/ <strike>·</strike> N || Z | ||
|- | |- | ||
| 49 || '''XMn''' || eXclusive or in Memory || Różnica symetryczna w pamięci || S/N;NB/ := S/N;NB/ <strike>·</strike> R/A/ || Z | | 49 || '''XMn, rA, rC, rB''' || eXclusive or in Memory || Różnica symetryczna w pamięci || S/N;NB/ := S/N;NB/ <strike>·</strike> R/A/ || Z | ||
|- | |- | ||
| 50 || '''ERn''' || Erase bits in Register || Zeruj bity || R/A/ := R/A/ ∧ <span style="text-decoration:overline;">N</span> || Z | | 50 || '''ERn, rA, rC, rB''' || Erase bits in Register || Zeruj bity || R/A/ := R/A/ ∧ <span style="text-decoration:overline;">N</span> || Z | ||
|- | |- | ||
| 51 || '''EMn''' || Erase bits in Memory || Zeruj bity w pamięci || S/N;NB/ := S/N;NB/ ∧ <span style="text-decoration:overline;">R/A/</span> || Z | | 51 || '''EMn, rA, rC, rB''' || Erase bits in Memory || Zeruj bity w pamięci || S/N;NB/ := S/N;NB/ ∧ <span style="text-decoration:overline;">R/A/</span> || Z | ||
|- | |- | ||
| 52 || '''CLn''' || Compare Logically || Porównaj logicznie || R/A/ >=< N || L, E, G | | 52 || '''CLn, rA, rC, rB''' || Compare Logically || Porównaj logicznie || R/A/ >=< N || L, E, G | ||
|- | |- | ||
| 53 || '''NGL''' || NeGate Logically || Neguj logicznie || R/A/ := <span style="text-decoration:overline;">R/A/</span> || Z | | 53 || '''NGL, rA''' || NeGate Logically || Neguj logicznie || R/A/ := <span style="text-decoration:overline;">R/A/</span> || Z | ||
|- | |- | ||
| 54 || '''SXU''' || Set X as Upper bit || Ustaw wskaźnik X według R/A/<sub>0</sub> || X := R/A/<sub>0</sub> || Z | | 54 || '''SXU, rA''' || Set X as Upper bit || Ustaw wskaźnik X według R/A/<sub>0</sub> || X := R/A/<sub>0</sub> || Z | ||
|- | |- | ||
| 55 || '''SXL''' || Set X as Lower bit || Ustaw wskaźnik X według R/A/<sub>15</sub> || X := R/A/<sub>15</sub> || Z | | 55 || '''SXL, rA''' || Set X as Lower bit || Ustaw wskaźnik X według R/A/<sub>15</sub> || X := R/A/<sub>15</sub> || Z | ||
|- | |- | ||
| 56 || '''SLZ''' || Shift Left add Zero || Przesuń w lewo || R/A/ « [R/A/,0]<br>Y := R/A/<sub>0</sub> || Y | | 56 || '''SLZ, rA''' || Shift Left add Zero || Przesuń w lewo || R/A/ « [R/A/,0]<br>Y := R/A/<sub>0</sub> || Y | ||
|- | |- | ||
| 57 || '''SLY''' || Shift Left add Y || Przesuń w lewo z Y || R/A/ « [R/A/,Y]<br>Y := R/A/<sub>0</sub> || Y | | 57 || '''SLY, rA''' || Shift Left add Y || Przesuń w lewo z Y || R/A/ « [R/A/,Y]<br>Y := R/A/<sub>0</sub> || Y | ||
|- | |- | ||
| 58 || '''SLX''' || Shift Left add X || Przesuń w lewo z X || R/A/ « [R/A/,X]<br>Y := R/A/<sub>0</sub> || Y | | 58 || '''SLX, rA''' || Shift Left add X || Przesuń w lewo z X || R/A/ « [R/A/,X]<br>Y := R/A/<sub>0</sub> || Y | ||
|- | |- | ||
| 59 || '''SVZ''' || Shift left, check oVerflow, add Zero || Przesuń w lewo, ustaw V || R/A/ « [R/A/,0]<br>Y := R/A/<sub>0</sub> || Y, V | | 59 || '''SVZ''' || Shift left, check oVerflow, add Zero || Przesuń w lewo, ustaw V || R/A/ « [R/A/,0]<br>Y := R/A/<sub>0</sub> || Y, V | ||
Linia 185: | Linia 195: | ||
| 60 || '''SVY''' || Shift left, check oVerflow, add Y || Przesuń w lewo z Y, ustaw V || R/A/ « [R/A/,Y]<br>Y := R/A/<sub>0</sub> || Y, V | | 60 || '''SVY''' || Shift left, check oVerflow, add Y || Przesuń w lewo z Y, ustaw V || R/A/ « [R/A/,Y]<br>Y := R/A/<sub>0</sub> || Y, V | ||
|- | |- | ||
| 61 || '''SVX''' || Shift left, check oVerflow, add X || Przesuń w lewo z X, ustaw V || R/A/ « [R/A/,X]<br>Y := R/A/<sub>0</sub> || Y, V | | 61 || '''SVX, rA''' || Shift left, check oVerflow, add X || Przesuń w lewo z X, ustaw V || R/A/ « [R/A/,X]<br>Y := R/A/<sub>0</sub> || Y, V | ||
|- | |- | ||
| 62 || '''SRZ''' || Shift Right, add Zero || Przesuń w prawo || [0,R/A/] R/A/»<br>Y := R/A/<sub>15</sub> || Y | | 62 || '''SRZ''' || Shift Right, add Zero || Przesuń w prawo || [0,R/A/] R/A/»<br>Y := R/A/<sub>15</sub> || Y | ||
Linia 193: | Linia 203: | ||
| 64 || '''SRX''' || Shift Right, add X || Przesuń w prawo z X || [X,R/A/] R/A/»<br>Y := R/A/<sub>15</sub> || Y | | 64 || '''SRX''' || Shift Right, add X || Przesuń w prawo z X || [X,R/A/] R/A/»<br>Y := R/A/<sub>15</sub> || Y | ||
|- | |- | ||
| 65 || '''SHC''' || SHift Cyclic || Przesuń cyklicznie || R/A/»T»R/A/<br>T - liczba przesunięć | | 65 || '''SHC, rA, T''' || SHift Cyclic || Przesuń cyklicznie || R/A/»T»R/A/<br>T - liczba przesunięć | ||
|- | |- | ||
| 66 || '''LBn''' || Load Byte || Umieść bajt || R/A/<sub>8÷15</sub> := S/N;NB/ | | 66 || '''LBn, rA, rC, rB''' || Load Byte || Umieść bajt || R/A/<sub>8÷15</sub> := S/N;NB/ | ||
|- | |- | ||
| 67 || '''RBn''' || Remember Byte || Pamiętaj bajt || S/N;NB/ := R/A/<sub>8÷15</sub> | | 67 || '''RBn, rA, rC, rB''' || Remember Byte || Pamiętaj bajt || S/N;NB/ := R/A/<sub>8÷15</sub> | ||
|- | |- | ||
| 68 || '''ZLB''' || Zero to Left Byte || Zeruj bajt lewy || R/A/<sub>0÷7</sub> := 0 | | 68 || '''ZLB, rA''' || Zero to Left Byte || Zeruj bajt lewy || R/A/<sub>0÷7</sub> := 0 | ||
|- | |- | ||
| 69 || '''ZRB''' || Zero to Right Byte || Zeruj bajt prawy || R/A/<sub>8÷15</sub> := 0 | | 69 || '''ZRB, rA''' || Zero to Right Byte || Zeruj bajt prawy || R/A/<sub>8÷15</sub> := 0 | ||
|- | |- | ||
| 70 || '''CBn''' || Compare Byte || Porównaj bajt || R/A/<sub>8÷15</sub> >=< S/N;NB/ || L, E, G | | 70 || '''CBn, rA, rB, rC''' || Compare Byte || Porównaj bajt || R/A/<sub>8÷15</sub> >=< S/N;NB/ || L, E, G | ||
|- | |- | ||
| 71 || '''UJn''' || Unconditional Jump || Skocz || IC := N | | 71 || '''UJn, rC, rB''' || Unconditional Jump || Skocz || IC := N | ||
|- | |- | ||
| 72 || '''UJS''' || Unconditional Jump Short || Skocz względnie || IC := IC + T | | 72 || '''UJS, T''' || Unconditional Jump Short || Skocz względnie || IC := IC + T | ||
|- | |- | ||
| 73 || '''LJn''' || Link Jump || Skocz ze śladem || S/N/ := IC<br>IC := N + 1 | | 73 || '''LJn, rC, rB''' || Link Jump || Skocz ze śladem || S/N/ := IC<br>IC := N + 1 | ||
|- | |- | ||
| 74 || '''RJn''' || Return Jump || Skocz ze śladem w rejestrze || R/A/ := IC<br>IC := N | | 74 || '''RJn, rA, rC, rB''' || Return Jump || Skocz ze śladem w rejestrze || R/A/ := IC<br>IC := N | ||
|- | |- | ||
| 75 || '''JNn''' || Jump if Not equal || Skocz gdy <span style="text-decoration:overline;">E</span> || Jeśli E=0 to IC := N | | 75 || '''JNn, rC, rB''' || Jump if Not equal || Skocz gdy <span style="text-decoration:overline;">E</span> || Jeśli E=0 to IC := N | ||
|- | |- | ||
| 76 || '''JLn''' || Jump if Less || Skocz przy L || Jeśli L=1 to IC := N | | 76 || '''JLn, rC, rB''' || Jump if Less || Skocz przy L || Jeśli L=1 to IC := N | ||
|- | |- | ||
| 77 || '''JLS''' || Jump if Less Short || Skocz względnie przy L || Jeśli L=1 to IC := IC + T | | 77 || '''JLS, T''' || Jump if Less Short || Skocz względnie przy L || Jeśli L=1 to IC := IC + T | ||
|- | |- | ||
| 78 || '''JEn''' || Jump if Equal || Skocz przy E || Jeśli E=1 to IC := N | | 78 || '''JEn, rC, rB''' || Jump if Equal || Skocz przy E || Jeśli E=1 to IC := N | ||
|- | |- | ||
| 79 || '''JES''' || Jump if Equal Short || Skocz względnie przy E || Jeśli E=1 to IC := IC + T | | 79 || '''JES, T''' || Jump if Equal Short || Skocz względnie przy E || Jeśli E=1 to IC := IC + T | ||
|- | |- | ||
| 80 || '''JGn''' || Jump if Greater || Skocz przy G || Jeśli G=1 to IC := N | | 80 || '''JGn, rC, rB''' || Jump if Greater || Skocz przy G || Jeśli G=1 to IC := N | ||
|- | |- | ||
| 81 || '''JGS''' || Jump if Greater Short || Skocz względnie przy G || Jeśli G=1 to IC := IC + T | | 81 || '''JGS, T''' || Jump if Greater Short || Skocz względnie przy G || Jeśli G=1 to IC := IC + T | ||
|- | |- | ||
| 82 || '''JZn''' || Jump if Zero || Skocz przy Z || Jeśli Z=1 to IC := N | | 82 || '''JZn, rC, rB''' || Jump if Zero || Skocz przy Z || Jeśli Z=1 to IC := N | ||
|- | |- | ||
| 83 || '''JMn''' || Jump if Minus || Skocz przy M || Jeśli M=1 to IC := N | | 83 || '''JMn, rC, rB''' || Jump if Minus || Skocz przy M || Jeśli M=1 to IC := N | ||
|- | |- | ||
| 84 || '''JVS''' || Jump if oVerflow Short || Skocz względnie przy V || Jeśli V=1 to IC := IC + T<br>V := 0 || V | | 84 || '''JVS, T''' || Jump if oVerflow Short || Skocz względnie przy V || Jeśli V=1 to IC := IC + T<br>V := 0 || V | ||
|- | |- | ||
| 85 || '''JCS''' || Jump if Carry Short || Skocz względnie przy C || Jeśli C=1 to IC := IC + T | | 85 || '''JCS, T''' || Jump if Carry Short || Skocz względnie przy C || Jeśli C=1 to IC := IC + T | ||
|- | |- | ||
| 86 || '''JYS''' || Jump if Y Short || Skocz względnie przy Y || Jeśli Y=1 to IC := IC + T | | 86 || '''JYS, T''' || Jump if Y Short || Skocz względnie przy Y || Jeśli Y=1 to IC := IC + T | ||
|- | |- | ||
| 87 || '''JXS''' || Jump if X Short || Skocz względnie przy X || Jeśli X=1 to IC := IC + T | | 87 || '''JXS, T''' || Jump if X Short || Skocz względnie przy X || Jeśli X=1 to IC := IC + T | ||
|- | |- | ||
| 88 || '''TRB''' || parameTer to Register and Branch || Dodaj arg. krótki i przeskocz || R/A/ := R/A/ + T<br>Jeśli R/A/=0 to P := 1 || P | | 88 || '''TRB, rA, T''' || parameTer to Register and Branch || Dodaj arg. krótki i przeskocz || R/A/ := R/A/ + T<br>Jeśli R/A/=0 to P := 1 || P | ||
|- | |- | ||
| 89 || '''IRB''' || Increment Register and Branch || Dodaj 1, skocz względnie || R/A/ := R/A/ + 1<br>Jeśli R/A/=0 to IC := IC + T | | 89 || '''IRB, rA, T''' || Increment Register and Branch || Dodaj 1, skocz względnie || R/A/ := R/A/ + 1<br>Jeśli R/A/=0 to IC := IC + T | ||
|- | |- | ||
| 90 || '''DRB''' || Decrease Register and Branch || Odejmij 1, skocz względnie || R/A/ := R/A/ - 1<br>Jeśli R/A/=0 to IC := IC + T | | 90 || '''DRB, rA, T''' || Decrease Register and Branch || Odejmij 1, skocz względnie || R/A/ := R/A/ - 1<br>Jeśli R/A/=0 to IC := IC + T | ||
|- | |- | ||
| 91 || '''BBn''' || Branch on Bits || Porównaj logicznie iloczyn || Jeśli R/A/∧N ≡ N to P := 1 || P | | 91 || '''BBn, rA, rC, rB''' || Branch on Bits || Porównaj logicznie iloczyn || Jeśli R/A/∧N ≡ N to P := 1 || P | ||
|- | |- | ||
| 92 || '''BMn''' || Branch on bits in Memory || Porównaj logicznie iloczyn w pamięci || Jeśli S/N;NB/ ∧ R/A/ ≡ R/A/ to P := 1 || P | | 92 || '''BMn, rA, rC, rB''' || Branch on bits in Memory || Porównaj logicznie iloczyn w pamięci || Jeśli S/N;NB/ ∧ R/A/ ≡ R/A/ to P := 1 || P | ||
|- | |- | ||
| 93 || '''BSn''' || Branch Selective || Porównaj logicznie przez maskę || Jeśli R/A/ ∧ R7 ≡ N ∧ R7 to P := 1 || P | | 93 || '''BSn, rA, rC, rB''' || Branch Selective || Porównaj logicznie przez maskę || Jeśli R/A/ ∧ R7 ≡ N ∧ R7 to P := 1 || P | ||
|- | |- | ||
| 94 || '''BCn''' || Branch if not all Conditions || Porównaj logicznie iloczyn || Jeśli R/A/ ∧ N ≡ N to P := 1 || P | | 94 || '''BCn, rA, rC, rB''' || Branch if not all Conditions || Porównaj logicznie iloczyn || Jeśli R/A/ ∧ N ≡ N to P := 1 || P | ||
|- | |- | ||
| 95 || '''BNn''' || Branch if No conditions || Przeskocz gdy iloczyn=0 || Jeśli R/A/ ∧ N ≡ 0 to P := 1 || P | | 95 || '''BNn, rA, rC, rB''' || Branch if No conditions || Przeskocz gdy iloczyn=0 || Jeśli R/A/ ∧ N ≡ 0 to P := 1 || P | ||
|- | |- | ||
| 96 || '''BRC''' || Branch if not Right Conditions || Badaj prawy bajt R0 || Jeśli R0<sub>8÷15</sub> ∧ b ≠ b to P := 1 || P | | 96 || '''BRC, b''' || Branch if not Right Conditions || Badaj prawy bajt R0 || Jeśli R0<sub>8÷15</sub> ∧ b ≠ b to P := 1 || P | ||
|- | |- | ||
| 97 || '''BLC''' || Branch if not Left Conditions || Badaj lewy bajt R0 || Jeśli R0<sub>0÷7</sub> ∧ b ≠ b to P := 1 || P | | 97 || '''BLC, b''' || Branch if not Left Conditions || Badaj lewy bajt R0 || Jeśli R0<sub>0÷7</sub> ∧ b ≠ b to P := 1 || P | ||
|- | |- | ||
| 98 || '''IBn''' || Increment and Branch || Następnik pamięci || S/N/ := S/N/ + 1<br>Jeśli S/N/=0 to P := 1 || P | | 98 || '''IBn, rC, rB''' || Increment and Branch || Następnik pamięci || S/N/ := S/N/ + 1<br>Jeśli S/N/=0 to P := 1 || P | ||
|- | |- | ||
| 99 || '''MDn''' || MoDify next instruction || Modyfikuj || MOD := N | | 99 || '''MDn, rC, rB''' || MoDify next instruction || Modyfikuj || MOD := N | ||
|- | |- | ||
| 100 || '''NOP''' || No OPeration || Nic nie rób || traktowany przez assembler jako UJS, 0 | | 100 || '''NOP''' || No OPeration || Nic nie rób || traktowany przez assembler jako UJS, 0 | ||
|- | |- | ||
| 101 || '''RKY''' || Read KeYboard || Czytaj klucze || R/A/ := klucze KB pulpitu technicznego | | 101 || '''RKY, rA''' || Read KeYboard || Czytaj klucze || R/A/ := klucze KB pulpitu technicznego | ||
|- | |- | ||
| 102 || '''RIC''' || Read Instruction Counter || Czytaj licznik rozkazów || R/A/ := IC | | 102 || '''RIC, rA''' || Read Instruction Counter || Czytaj licznik rozkazów || R/A/ := IC | ||
|- | |- | ||
| 103 || '''ISn''' || Install Semaphore || Ustaw semafor || Jeśli S/N;NB/ ∧ R/A/ ≡ R/A/ to P := 1<br>Jeśli S/N;NB/ ∧ R/A/ ≠ R/A/ to S/N;NB/ := S/N;NB/ ∨ R/A/ || P | | 103 || '''ISn, rA, rC, rB''' || Install Semaphore || Ustaw semafor || Jeśli S/N;NB/ ∧ R/A/ ≡ R/A/ to P := 1<br>Jeśli S/N;NB/ ∧ R/A/ ≠ R/A/ to S/N;NB/ := S/N;NB/ ∨ R/A/ || P | ||
|- | |- | ||
| 104 || '''EXL''' || EXtra code Legal || Ekstrakod || S/S/97;0// := IC <br>S/S/97;0/+1/ := R0 <br>S/S/97;0/+2/ := SR <br>S/S/97;0/+3/ := b <br>R0 := 0 <br>IC := S/96;0/ <br>SR<sub>9,10</sub> := 0 <br>S/97;0/ := S/97;0/+4 | | 104 || '''EXL, b''' || EXtra code Legal || Ekstrakod || S/S/97;0// := IC <br>S/S/97;0/+1/ := R0 <br>S/S/97;0/+2/ := SR <br>S/S/97;0/+3/ := b <br>R0 := 0 <br>IC := S/96;0/ <br>SR<sub>9,10</sub> := 0 <br>S/97;0/ := S/97;0/+4 | ||
|- | |- | ||
| 105 || '''RPC''' || Remember Program Conditions || Prześlij rejestr R0 || R/A/ := R0 | | 105 || '''RPC, rA''' || Remember Program Conditions || Prześlij rejestr R0 || R/A/ := R0 | ||
|- | |- | ||
| 106 || '''LPC''' || Load Program Conditions || Umieść w rejestrze R0 || R0 := R/A/ | | 106 || '''LPC, rA''' || Load Program Conditions || Umieść w rejestrze R0 || R0 := R/A/ | ||
|- | |- | ||
| 107 || '''MBn''' || Modify Block ard. register (??) || Umieść w SR || SR<sub>10÷15</sub> := S/N/<sub>10÷15</sub> | | 107 || '''MBn, rA, rC, rB''' || Modify Block ard. register (??) || Umieść w SR || SR<sub>10÷15</sub> := S/N/<sub>10÷15</sub> | ||
|- | |- | ||
| 108 || '''IMn''' || load Interrupt Mask || Umieść w RM || SR<sub>0÷9</sub> := S/N/<sub>0÷9</sub> | | 108 || '''IMn, rA, rC, rB''' || load Interrupt Mask || Umieść w RM || SR<sub>0÷9</sub> := S/N/<sub>0÷9</sub> | ||
|- | |- | ||
| 109 || '''KIn''' || Kill Interrupts || Pamiętaj RZ || S/N/ := RZ<sub>0÷11,28÷31</sub> | | 109 || '''KIn, rA, rC, rB''' || Kill Interrupts || Pamiętaj RZ || S/N/ := RZ<sub>0÷11,28÷31</sub> | ||
|- | |- | ||
| 110 || '''FIn''' || Fetch Interrupts || Umieść w RZ || RZ<sub>0÷11,28÷31</sub> := S/N | | 110 || '''FIn, rA, rC, rB''' || Fetch Interrupts || Umieść w RZ || RZ<sub>0÷11,28÷31</sub> := S/N | ||
|- | |- | ||
| 111 || '''SPn''' || Start Program || Powróć do programu || IC := S/N;NB/ <br>R0 := S/N+1;NB/ <br> SR := S/N+2;NB/ | | 111 || '''SPn, rA, rC, rB''' || Start Program || Powróć do programu || IC := S/N;NB/ <br>R0 := S/N+1;NB/ <br> SR := S/N+2;NB/ | ||
|- | |- | ||
| 112 || '''HLT''' || HaLT || Czekaj || || | | 112 || '''HLT''' || HaLT || Czekaj || || | ||
Linia 305: | Linia 315: | ||
| 120 || '''LIP''' || Leave to Interrupted Program || Powróć z przerwania || IC := S/S/97;0/-4/ <br>R0 := S/S/97;0/-3/<br> SR := S/S/97;0/-2/ <br>S/97;0/ := S/97;0/-4 | | 120 || '''LIP''' || Leave to Interrupted Program || Powróć z przerwania || IC := S/S/97;0/-4/ <br>R0 := S/S/97;0/-3/<br> SR := S/S/97;0/-2/ <br>S/97;0/ := S/97;0/-4 | ||
|- | |- | ||
| 121 || '''OUn''' || OUtput data || Wyjście || || | | 121 || '''OUn, rA, rC, rB''' || OUtput data || Wyjście || || | ||
|- | |- | ||
| 122 || '''INn''' || INput data || Wejście || || | | 122 || '''INn, rA, rC, rB''' || INput data || Wejście || || | ||
|} | |} |