MIPS - Übersetzung von Assemblersprache in binäres
Ich bin derzeit lernen, MIPS, und ich bin verwirrt darüber, wie man Assembler in Binärcode. Ich verstehe, dass das grundlegende format ist:
opcode(6 bit) rs(5 bit) rd(5 bit) rd(5 bit) shamt(5 bit) funct(6 bit)
Das problem ist:
sw $t1, 32($t2)
So weit ich weiß:
$t1 = 01001, $t2 = 01010, opcode für sw = 101011, 32 Binär = 100000
Die erste Sache, die ich bin verwirrt, was ist shamt, - oder die Umschalttaste. Ich habe gelernt, dass es ein 5-bit-Wert, aber 32 Binär dargestellt wird, indem 6 bits.
Die zweite Sache, die ich bin verwirrt über die Reihenfolge. Dies ist, was ich habe, so weit, aber ich glaube nicht, dass es richtig ist, weil es keine 32-bit-Zeichenfolge:
000000 01010 01001 100000 101011
Kann mir jemand erklären, was die richtige Binär-string ist für die, die Assembler-Anweisung?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht alle Anweisungen, dass Computer-code-format, wie es aussieht, meist arithmetische Anweisungen tun. Sie brauchen eine besser Referenz-Handbuch, dass die Listen, Codierungen für andere Anweisungen als gut.
sw
insbesondere sieht wie folgt aus:1010 11ss ssst tttt iiii iiii iiii iiii
wos
ist das Ziel (!),t
ist die Quelle, undi
ist die sofortige offset. So wie dein Beispiel aussieht1010 1101 0100 1001 0000 0000 0010 0000
die0xAD490020
Prüfen Sie mit einem assembler: