Ganzzahlige arithmetische und logische Instruktionen

Help Contents Instruktionen des DLX-Prozessors Ganzzahlige arithmetische und logische Instruktionen
MOVS2I ADD

Ganzzahlige arithmetische und logische Instruktionen

Grundsätzlich gibt es Instruktionen mit direkt angegebenen 16-Bit-Integerwerten (=Immediate-Value, kurz "Imm") als zweiten Operanden und Operationen, die nur mit Registern arbeiten. Ein Überlauf-Fehler bei der Integer-Arithmetik wird von WINDLX nicht gemeldet.

ADD Rd,Ra,Rb Addiert die Werte zweier vorzeichenbehafteter Integer-Register Ra und Rb und schreibt das Ergebnis in das Register Rd.

ADDI Rd,Ra,Imm Addiert zum Wert des Registers Ra vorzeichenbehaftet den angegebenen 16-Bit-Wert und schreibt das Ergebnis in das Register Rd.

ADDU Rd,Ra,Rb Addiert die Werte zweier vorzeichenloser Integer-Register Ra und Rb und schreibt das Ergebnis in das Register Rd.

ADDUI Rd,Ra,Imm Addiert zum Wert des Registers Ra vorzeichenlos den angegebenen 16-Bit-Wert und schreibt das Ergebnis in das Register Rd.

SUB Rd,Ra,Rb Subtrahiert die Werte zweier vorzeichenbehafteter Integer-Register Ra und Rb und schreibt das Ergebnis in das Register Rd.

SUBI Rd,Ra,Imm Subtrahiert vom Wert des Registers Ra vorzeichenbehaftet den angegebenen 16-Bit-Wert und schreibt das Ergebnis in das Register Rd.

SUBU Rd,Ra,Rb Subtrahiert die Werte zweier vorzeichenloser Integer-Register Ra und Rb und schreibt das Ergebnis in das Register Rd.

SUBUI Rd,Ra,Imm Subtrahiert vorzeichenlos vom Wert des Registers Ra den angegebenen 16-Bit-Wert und schreibt das Ergebnis in das Register Rd.



MULT Rd,Ra,Rb Multipliziert die Werte zweier vorzeichenbehafteter Integer-Register Ra und Rb und schreibt das Ergebnis in das Register Rd. Dabei wird eine Fliesskomma-Multiplikations-EX-Stufe verwendet.

MULTU Rd,Ra,Rb Multipliziert die Werte zweier vorzeichenloser Integer-Register Ra und Rb und schreibt das Ergebnis in das Register Rd. Dabei wird eine Fliesskomma-Multiplikations-EX-Stufe verwendet.

DIV Rd,Ra,Rb Dividiert die Werte zweier vorzeichenbehafteter Integer-Register Ra und Rb und schreibt das Ergebnis in das Register Rd. Dabei wird eine Fliesskomma-Divisions-EX-Stufe verwendet.

DIVU Rd,Ra,Rb Dividiert die Werte zweier vorzeichenloser Integer-Register Ra und Rb und schreibt das Ergebnis in das Register Rd. Dabei wird eine Fliesskomma-Divisions-EX-Stufe verwendet.

AND Rd,Ra,Rb Verknüpft den Inhalt der beiden Register Ra und Rb bitweise mit einem logischen UND und speichert das Ergebnis in Rd.

ANDI Rd,Ra,Imm Verknüpft den Inhalt von Register Ra und den direkt angegebenen 16-Bit-Wert Imm mit einem logischen UND und speichert das Ergebnis in Rd.

OR Rd,Ra,Rb Verknüpft den Inhalt der beiden Register Ra und Rb bitweise mit einem logischen ODER und speichert das Ergebnis in Rd.



ORI Rd,Ra,Imm Verknüpft den Inhalt von Register Ra und den direkt angegebenen 16-Bit-Wert Imm mit einem logischen ODER und speichert das Ergebnis in Rd.

XOR Rd,Ra,Rb Verknüpft den Inhalt der beiden Register Ra und Rb bitweise mit einem logischen, exklusiven ODER und speichert das Ergebnis in Rd.

XORI Rd,Ra,Imm Verknüpft den Inhalt von Register Ra und den direkt angegebenen 16-Bit-Wert Imm mit einem logischen, exklusiven ODER und speichert das Ergebnis in Rd.

LHI Rd,Imm Kopiert den direkt angegebenen 16-Bit-Wert in die höhere Hälfte von Rd und füllt die unteren 16 Bit mit Nullen.

SLL Rd,Rs,Rc Schiebt den Inhalt von Register Rs logisch um Rc-Bit nach links und legt das Ergebnis in Rd ab. Rechts wird mit Nullen aufgefüllt.

SRL Rd,Rs,Rc Schiebt den Inhalt von Register Rs logisch um Rc-Bit nach rechts und legt das Ergebnis in Rd ab. Links wird mit Nullen aufgefüllt.

SRA Rd,Rs,Rc Schiebt den Inhalt von Register Rs arithmetisch um Rc-Bit nach rechts und legt das Ergebnis in Rd ab. Links wird mit dem Vorzeichen (d.h. dem zuvor vordersten Bit) aufgefüllt.



SLLI Rd,Rs,Imm Schiebt den Inhalt von Register Rs logisch um Imm-Bit nach links und legt das Ergebnis in Rd ab. Rechts wird mit Nullen aufgefüllt.

SRLI Rd,Rs,Imm Schiebt den Inhalt von Register Rs logisch um Imm-Bit nach rechts und legt das Ergebnis in Rd ab. Links wird mit Nullen aufgefüllt.

SRAI Rd,Rs,Rc Schiebt den Inhalt von Register Rs arithmetisch um Imm-Bit nach rechts und legt das Ergebnis in Rd ab. Links wird mit dem Vorzeichen (d.h. dem zuvor vordersten Bit) aufgefüllt.

S__ Rd,Ra,Rb Die Werte von Ra und Rb werden vorzeichenbehaftet verglichen und das Register Rd je nach Bedingung ("__" steht für EQ, NE, LT, GT, LE oder GE) und Ergebnis auf TRUE (=1) oder FALSE (=0) gesetzt.

S__I Rd,Ra,Imm Der Wert von Ra wird mit Imm vorzeichenbehaftet verglichen und das Register Rd je nach Bedingung ("__" steht für EQ, NE, LT, GT, LE oder GE) und Ergebnis auf TRUE (=1) oder FALSE (=0) gesetzt.

S__U Rd,Ra,Rb Die Werte von Ra und Rb werden vorzeichenlos verglichen und das Register Rd je nach Bedingung ("__" steht für EQ, NE, LT, GT, LE oder GE) und Ergebnis auf TRUE (=1) oder FALSE (=0) gesetzt.

S__UI Rd,Ra,Imm Der Wert von Ra wird mit Imm vorzeichenlos verglichen und das Register Rd je nach Bedingung ("__" steht für EQ, NE, LT, GT, LE oder GE) und Ergebnis auf TRUE (=1) oder FALSE (=0) gesetzt.



NOP Dieser Befehl, bei dem keinerlei Aktion durchgeführt werden soll, wird im Speicher mit dem Wert 0 dargestellt, was eigentlich der Code für "SLLI R0,R0,0" ist.

Ganzzahlige arithmetische und logische Instruktionen

Reference:

MOVS2I ADD