Frage Was bedeutet func im R-Format Befehlssatz?


Ich bin sehr neu in Assemblersprache. Ich habe gelesen MIPS Architektur und ich stecke mit dem letzten Feld der Registerformat (R-Format). Hier ist seine visuelle Darstellung, enter image description here Kann mir bitte jemand helfen was bedeutet das sechste Feld? und wie berechnen wir es? Danke im Voraus.


9
2017-08-03 15:56


Ursprung


Antworten:


Da die Beschreibung alle Anweisungen vom R-Typ (z.B. ADD, AND, SLL und andere) haben die 6 höchstwertigen Bits (= op) auf 0 gesetzt, dh die einzige Möglichkeit, zwischen ihnen zu unterscheiden, besteht darin, die 6 niedrigstwertigen Bits (= funct) zu betrachten. Mit anderen Worten, sie bestimmen den Befehlstyp. Vielleicht hilft ein Beispiel.

ADD $1, $2, $3 

hat:

op = 0 (as all R-type instructions)
rs = 2
rt = 3
rd = 1
shamt = 0
funct = 0x20 = 0b00000100000 = 32

Die Codierung wird somit lauten:

0000 0000 0100 0011 0000 1000 0010 0000

Für z.B. XOR (eine andere R-Typ-) Befehlsfunktion ist 0b100110 = 0x26 = 38. Sie "berechnen" es also, indem Sie nachschlagen, welche Anweisung Sie codieren möchten.

(genommen von MIPS-Befehlsreferenz).


7
2017-08-03 16:09



Aus der folgenden Tabelle:

http://en.wikibooks.org/wiki/MIPS_Assembly/Instruction_Formats#Opcodes

Der Operationscode fast aller R-Type-Befehle ist 00, also wählt die Funktion die ALU-Funktion aus.

Funkt       Für Anweisungen, die einen Opcode teilen, der Parameter funct   enthält die notwendigen Steuercodes, um die verschiedenen zu unterscheiden   Anleitung. 6 Bits lang (0 bis 5). Beispiel: Opcode 0x00 greift auf die   ALU, und die Funktion wählt aus, welche ALU-Funktion verwendet werden soll.


1
2017-08-03 16:08