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

Z MERA 400 wiki
Przejdź do nawigacji Przejdź do wyszukiwania
Linia 137: Linia 137:
 
|-
 
|-
 
| 69 || '''ZRB''' || Zero to Right Byte || Zeruj bajt lewy || R/A/<sub>8&divide;15</sub> := 0
 
| 69 || '''ZRB''' || Zero to Right Byte || Zeruj bajt lewy || R/A/<sub>8&divide;15</sub> := 0
 +
|-
 +
| 70 || '''CBn''' || Compare Byte || Porównaj Bajt || R/A/<sub>8&divide;15</sub> >=< 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<br>IC := N+1
 +
|-
 +
| 74 || '''RJn''' || 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
 +
|-
 +
| 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<br>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<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
 +
|-
 +
| 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
 
|-
 
|-
  
 
|}
 
|}

Wersja z 20:57, 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 wedug R/A/0 X := R/A/0 Z
55 SXL Set X as Lower bit Ustaw wskaźnik X wedug 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