Lista rozkazów: Różnice pomiędzy wersjami

Z MERA 400 wiki
Przejdź do nawigacji Przejdź do wyszukiwania
Nie podano opisu zmian
Nie podano opisu zmian
Linia 144: Linia 144:
| 72 || '''UJS''' || Unconditional Jump Short || Skocz względnie || IC := IC + T
| 72 || '''UJS''' || 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''' || 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''' || Return Jump || Skocz ze śladem w rejestrze || R/A/ := IC<br>IC := N
Linia 152: Linia 152:
| 76 || '''JLn''' || Jump if Less || Skocz przy L || Jeśli L=1 to IC := N
| 76 || '''JLn''' || 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''' || 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''' || 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''' || 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''' || 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''' || 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''' || Jump if Zero || Skocz przy Z || Jeśli Z=1 to IC := N
Linia 166: Linia 166:
| 83 || '''JMn''' || Jump if Minus || Skocz przy M || Jeśli M=1 to IC := N
| 83 || '''JMn''' || 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''' || 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''' || 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''' || 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''' || Jump if X Short || Skocz względnie przy X || Jeśli X=1 to IC := IC + T
|-
|-
| 88 || '''TRB''' || parameTer to Register abd Branch || Dodaj arg. krótki i przeskocz || R/A/ := R/A/ + T<br>Jeśli R/A/=0 to P:=1 || P
| 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
|-
|-
| 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''' || 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''' || 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/&and;N &equiv; N to P := 1 || P
| 91 || '''BBn''' || Branch on Bits || Porównaj logicznie iloczyn || Jeśli R/A/&and;N &equiv; N to P := 1 || P
|-
|-
| 92 || '''BMn''' || Branch on bits in Memory || Porównaj logicznie iloczyn w pamięci || Jeśli S/N;NB/&and;R/A/&equiv;R/A/ to P := 1 || P
| 92 || '''BMn''' || Branch on bits in Memory || Porównaj logicznie iloczyn w pamięci || Jeśli S/N;NB/ &and; R/A/ &equiv; R/A/ to P := 1 || P
|-
|-
| 93 || '''BSn''' || Branch Selective || Porównaj logicznie przez maskę || Jeśli R/A/&and;R7&equiv;N&and;R7 to P := 1 || P
| 93 || '''BSn''' || Branch Selective || Porównaj logicznie przez maskę || Jeśli R/A/ &and; R7 &equiv; N &and; R7 to P := 1 || P
|-
|-
| 94 || '''BCn''' || Branch if not all Conditions || Porównaj logicznie iloczyn || Jeśli R/A/&and;N&equiv;N to P := 1 || P
| 94 || '''BCn''' || Branch if not all Conditions || Porównaj logicznie iloczyn || Jeśli R/A/ &and; N &equiv; N to P := 1 || P
|-
|-
| 95 || '''BNn''' || Branch if No conditions || Przeskocz gdy iloczyn=0 || Jeśli R/A/&and;N&equiv;0 to P := 1 || P
| 95 || '''BNn''' || Branch if No conditions || Przeskocz gdy iloczyn=0 || Jeśli R/A/ &and; N &equiv; 0 to P := 1 || P
|-
|-
| 96 || '''BRC''' || Branch if not Right Conditions || Badaj prawy bajt R0 || Jeśli R0<sub>8&divide;15</sub>&and;b &ne; b to P := 1 || P
| 96 || '''BRC''' || Branch if not Right Conditions || Badaj prawy bajt R0 || Jeśli R0<sub>8&divide;15</sub> &and; b &ne; b to P := 1 || P
|-
|-
| 97 || '''BLC''' || Branch if not Left Conditions || Badaj lewy bajt R0 || Jeśli R0<sub>0&divide;7</sub>&and;b &ne; b to P := 1 || P
| 97 || '''BLC''' || Branch if not Left Conditions || Badaj lewy bajt R0 || Jeśli R0<sub>0&divide;7</sub> &and; b &ne; 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''' || 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''' || MoDify next instruction || Modyfikuj || MOD := N

Wersja z 07:05, 8 sie 2012

Lp. Mnemonik Źródłosłów Opis Treść Ustaw
wskaźniki
1 LWn Load Word Umieść w rejestrze R/A/ := N
2 LWT 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/
4 LDn 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/]
6 LAn 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/]
8 LSn Load Selective Umieść przez maskę w R7 R/A/ := [R/A/∧R7] ∨ [N∧R7]
9 TWn 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/]
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/]
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/]
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/]
14 RWn Remember Word Pamiętaj rejestr S/N/ := R/A/
15 RWS 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]
18 RAn 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]
20 PWn 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]
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]
23 PAn 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]
25 RZn 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
R/A/ := R/A/ + 1
27 AWn 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
29 ACn 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
31 CWn 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
33 NGA NeGation Arithmetic Neguj arytmetycznie R/A/ := R/A/+1 Z, M, V, C
34 NGC NeGation with Carry Neguj z przeniesieniem R/A/ := R/A/+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
36 SDn 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
38 DWn Divide Words Dziel R2 := [R1, R2] : S/N/
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
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
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
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
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
45 OMn 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
47 NMn 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/ · N Z
49 XMn eXclusive or in Memory Różnica symetryczna w pamięci S/N;NB/ := S/N;NB/ · R/A/ Z
50 ERn Erase bits in Register Zeruj bity R/A/ := R/A/ ∧ N Z
51 EMn Erase bits in Memory Zeruj bity w pamięci S/N;NB/ := S/N;NB/ ∧ R/A/ Z
52 CLn Compare Logically Porównaj logicznie R/A/ >=< N L, E, G
53 NGL NeGate Logically Neguj logicznie R/A/ := R/A/ Z
54 SXU Set X as Upper bit Ustaw wskaźnik X według R/A/0 X := R/A/0 Z
55 SXL Set X as Lower bit Ustaw wskaźnik X według R/A/15 X := R/A/15 Z
56 SLZ Shift Left add Zero Przesuń w lewo R/A/ « [R/A/,0]
Y := R/A/0
Y
57 SLY Shift Left add Y Przesuń w lewo z Y R/A/ « [R/A/,Y]
Y := R/A/0
Y
58 SLX Shift Left add X Przesuń w lewo z X R/A/ « [R/A/,X]
Y := R/A/0
Y
59 SVZ Shift left, check oVerflow, add Zero Przesuń w lewo, ustaw V R/A/ « [R/A/,0]
Y := R/A/0
Y, V
60 SVY Shift left, check oVerflow, add Y Przesuń w lewo z Y, ustaw V R/A/ « [R/A/,Y]
Y := R/A/0
Y, V
61 SVX Shift left, check oVerflow, add X Przesuń w lewo z X, ustaw V R/A/ « [R/A/,X]
Y := R/A/0
Y, V
62 SRZ Shift Right, add Zero Przesuń w prawo [0,R/A/] R/A/»
Y := R/A/15
Y
63 SRY Shift Right, add Y Przesuń w prawo z Y [Y,R/A/] R/A/»
Y := R/A/15
Y
64 SRX Shift Right, add X Przesuń w prawo z X [X,R/A/] R/A/»
Y := R/A/15
Y
65 SHC SHift Cyclic Przesuń cyklicznie R/A/»R/A/
T - liczba przesunięć
66 LBn Load Byte Umieść bajt R/A/8÷15 := S/N;NB/
67 RBn Remember Byte Pamiętaj bajt S/N;NB/ := R/A/8÷15
68 ZLB Zero to Left Byte Zeruj bajt lewy R/A/0÷7 := 0
69 ZRB Zero to Right Byte Zeruj bajt prawy R/A/8÷15 := 0
70 CBn Compare Byte Porównaj bajt R/A/8÷15 >=< S/N;NB/ L, E, G
71 UJn Unconditional Jump Skocz IC := N
72 UJS Unconditional Jump Short Skocz względnie IC := IC + T
73 LJn Link Jump Skocz ze śladem S/N/ := IC
IC := N + 1
74 RJn Return Jump Skocz ze śladem w rejestrze R/A/ := IC
IC := N
75 JNn Jump if Not equal Skocz gdy E Jeśli E=0 to IC := N
76 JLn 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
78 JEn 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
80 JGn 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
82 JZn 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
84 JVS Jump if oVerflow Short Skocz względnie przy V Jeśli V=1 to IC := IC + T
V := 0
V
85 JCS 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
87 JXS 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
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
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
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
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
93 BSn 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
95 BNn 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 R08÷15 ∧ b ≠ b to P := 1 P
97 BLC Branch if not Left Conditions Badaj lewy bajt R0 Jeśli R00÷7 ∧ b ≠ b to P := 1 P
98 IBn Increment and Branch Następnik pamięci S/N/ := S/N/ + 1
jeśli S/N/=0 to P := 1
P
99 MDn MoDify next instruction Modyfikuj MOD := N
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
102 RIC Read Instruction Counter Czytaj licznik rozkazów R/A/ := IC