Lista rozkazów: Różnice pomiędzy wersjami
Przejdź do nawigacji
Przejdź do wyszukiwania
Nie podano opisu zmian |
|||
Linia 36: | Linia 36: | ||
| »n» || przesunięcie cykliczne o n bitów w prawo | | »n» || przesunięcie cykliczne o n bitów w prawo | ||
|- | |- | ||
|} | |||
==Lista Rozkazów== | ==Lista Rozkazów== |
Wersja z 11:45, 8 sie 2012
Oznaczenia użyte w opisie treści rozkazów
Oznaczenie | Znaczenie |
---|---|
R/x/ | rejestr o numerze x |
R/x/n | n-ty bit rejestru x |
R/x/n÷m | bity n...m rejestru x |
:= | przypisanie wartości |
S/x/ | zawartość komórki pamięci o adresie x |
S/x;NB/ | zawartość komórki pamięci o adresie x w bloku NB |
∧ | operator logiczny AND (iloczyn) |
∨ | operator logiczny OR (suma) |
operator logiczny XOR (różnica symetryczna) | |
x | operator logiczny NOT (negacja) |
>=< | porównanie (w rezultacie ustawia odpowiednio wskaźniki) |
≡ | tożsamość |
≠ | różne |
« | przesunięcie o jeden bit w lewo |
» | przesunięcie o jeden bit w prawo |
»n» | przesunięcie cykliczne o n bitów w prawo |
Lista Rozkazów
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/ |
Z |
49 | XMn | eXclusive or in Memory | Różnica symetryczna w pamięci | S/N;NB/ := S/N;NB/ |
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/»T»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 |