[vorheriger Abschnitt][nächster Abschnitt][Inhalt]


3.2.6 Opcodes des Von-Neumann-Rechners

Fünf-Zeichen-
Opcode
(Beispiel)
Hexa-
dezimal-
Wert
Üblicher Opcode

Wirkung
No Op. 1000 NOP (No OPeration)

keine Funktion, benötigt aber Zeit
LA 38 1800 LDA absol. 38 (oft geschrieben LDA #38)
(LoaD Accumulator absolutely)

Akku := 38;
LM 38 1100 LDA mem 38 (oft geschrieben LDA 38)
(LoaD Accumulator from memory)

Akku := RAM[38];
LI 38 1200 LDA mem indir. 38 (oft geschrieben LDA (38))
(LoaD Accumulator from memory indirectly)

Akku := RAM[ RAM[38] ];
SA 30 2800 STA absol. 30 (oft geschrieben STA #30)
(STore Accumulator in memory absolutely)

RAM[30] := Akku;
SM 30 2100 STA mem 30 (oft geschrieben STA 30)
(STore Accumulator in memory)

RAM[ RAM[30] ] := Akku;
+ 31
- 31
* 31
/ 31
3000
3100
3200
3300

ADD, SUB, MUL, DIV mem 31 (oft geschrieben ADD 31 etc.)

Akku := Akku + RAM[31]; etc.

Nicht: Akku := Akku + 31; !

AND31
OR 31
NOT31
XOR31
3400
3500
3600
3700

AND, OR, NOT, XOR mem 31 (oft geschrieben AND 31 etc.)

UND-, ODER-, NICHT-, Exklusiv-ODER-Verknüpfung
(ntes Bit mit ntem Bit verknüpft ergibt ntes Bit)

Akku := Akku UND RAM[31]; etc.

Nicht: Akku := Akku AND 31; !

+1 (ohne Leerz.)
-1
3800
3900
INC (INCrease accumulator)
DEC (DECrease accumulator)

Akku := Akku + 1; bzw. Akku := Akku -1;
LEFT3
RIGT3
3C00
3D00
SHL 3 (SHift Left)
SHR 3 (SHift Right)

Inhalt des Akkus um 3 Bits nach links/rechts schieben
JM 31 4100 JMP mem 31 (oft geschrieben JMP 31; JuMP)

Nächster Befehl wird von Adresse RAM[31] geholt werden.
JA 31 4800 JMP absol 31 (oft geschrieben JMP #31; JuMP)

Nächster Befehl wird von Adresse 31 geholt werden.
JZA31
JNA31
JLA31
5800
5900
5A00
JZE absol 31 (oft geschr. JZE #31; Jump if ZEro)
JNZ absol 31 (oft geschr. JNZ #31; Jump if Not Zero)
JLE absol 31 (oft geschr. JLE #31; Jump if Less or Equal)

Siehe Erklärung der Sprungbefehle
JZM31
JNM31
JLM31
5100
5200
5300
JZE mem 31 (oft geschr. JZE 31; Jump if ZEro)
JNZ mem 31 (oft geschr. JNZ 31; Jump if Not Zero)
JLE mem 31 (oft geschr. JLE 31; Jump if Less or Equal)

Siehe Erklärung der Sprungbefehle
IN 31 6100 IN 31

RAM[31] := Input-Port;
(Ein Input-Port wird durch die Erzeugung zufälliger Werte simuliert)
OUT31 7100 OUT 31

Output-Port := RAM[31];
(Der Wert aus dem RAM geht ins Nichts)


[vorheriger Abschnitt][nächster Abschnitt][Inhalt] Carsten Kelling 1996 ([EMail senden]); letzte Änderung: 17. September 1997