![]() |
Die kleinste und einfachste SPS der Welt! • 1
Bit Logik |
Mnemonik |
Operation |
Code |
Bemerkung |
---|---|---|---|
LD |
Load |
0 |
Input –› Res |
LDN |
Load
Not |
1 |
NOT(Input) –› Res |
ST |
Store |
2 |
Res –› Output |
STN |
Store
Not |
3 |
NOT(Res) –› Output |
AND |
AND |
4 |
Res
AND Input –› Res |
ANDN |
AND
mit Negiertem Operand |
5 |
Res
AND (NOT Input) –› Res |
OR |
OR |
6 |
Res
OR Input –› Res |
ORN |
OR
mit Negiertem Operand |
7 |
Res
OR (NOT Input) –› Res |
XOR |
Exklusives
OR |
8 |
Res
XOR Input –› Res |
XORN |
Exklusives
OR mit Negiertem
Operand |
9 |
Res
XOR (NOT Input) –› Res |
JMP1 |
Jump
if '1' |
A |
Sprung
vorwärts wenn Res=1 |
JMP0 |
Jump
if '0' |
B |
Sprung
vorwärts wenn Res=0 |
JMP |
Jump |
C |
Sprung
vorwärts ohne Bedingung |
• Sprungbefehle
sind immer relativ zum aktuellen Programmzähler und nur in
Vorwärtsrichtung.
• JMP
0=STOP=END : Programm wird beendet / Debugger wird aufgerufen /
Programm wird angehalten.
• JMP
1=NOP : No Operation. Der Programmzähler wird um eins erhöht.
• LD
0 : Konstante '0' wird geladen / LDN 0 : Konstante '1' wird geladen.
Codierbeispiel:
16 Bit Befehl=2A1B –› Opcode=2 und Operand=A1B –› ST
A1B
Wenn A1B=Ausgang Ventil3 –› ST Ventil3
Dies ist die komplette Spezifikation!