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

Z MERA 400 wiki
Przejdź do nawigacji Przejdź do wyszukiwania
Linia 106: Linia 106:
 
| 53 || '''NGL''' || NeGate Logically || Neguj Logicznie || R/A/ := <span style="text-decoration:overline;">R/A/</span> || Z
 
| 53 || '''NGL''' || 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 wedug R/A/<sub>0</sub> || X := R/A/<sub>0</sub> || 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
 
|-
 
|-
| 55 || '''SXL''' || Set X as Lower bit || Ustaw wskaźnik X wedug R/A/<sub>15</sub> || X := R/A/<sub>15</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
 
|-
 
|-
 
| 56 || '''SLZ''' || Shift Left add Zero || Przesuń w lewo || R/A/ &laquo; [R/A/,0]<br>Y := R/A/<sub>0</sub> || Y
 
| 56 || '''SLZ''' || Shift Left add Zero || Przesuń w lewo || R/A/ &laquo; [R/A/,0]<br>Y := R/A/<sub>0</sub> || Y
Linia 174: Linia 174:
 
| 87 || '''JXS''' || Jump if X Shortly || Skocz względnie przy X || Jeśli X=1 to IC := IC+T
 
| 87 || '''JXS''' || Jump if X Shortly || 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 abd 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 Pranch || 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 Pranch || 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
 +
|-
 +
| 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
 +
|-
 +
| 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
 +
|-
 +
| 97 || '''BLC''' || Branch if not Left Conditions || Badaj left 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
 +
|-
 +
| 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
 +
|-
 
|}
 
|}

Wersja z 21:16, 7 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 Shortly 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 Shortly 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 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 Normalizuj [R1, R2, R3] := znormalizowana liczba zmiennoprzecinkowa
44 ORn Or Register Dodaj logicznie R/A/ := R/A/ ∨ N Z
45 OMn Or Memory Dodaj ligicznie 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óż logidznie do pamięci S/N;NB/ := S/N;NB/ ∧ R/A/ Z
48 XRn eXclusive or in Register Różnica symentryczna R/A/ := R/A/ · N Z
49 XMn eXclusive or in Memory Różnica symentryczna 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 lewy 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 Shortly 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 Shortly 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 Shortly 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 Shortly Skocz względnie przy V Jeśli V=1 to IC := IC+T
V := 0
V
85 JCS Jump if Carry Shortly Skocz względnie przy C Jeśli C=1 to IC := IC+T
86 JYS Jump if Y Shortly Skocz względnie przy Y Jeśli Y=1 to IC := IC+T
87 JXS Jump if X Shortly 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
Jeśli R/A/=0 to P:=1
P
89 IRB Increment Register and Pranch 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 left 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