2016-03-26 24 views
2

Ich bin ein Student studieren Mikrocontroller, und alles ist im Allgemeinen gut, aber wenn es darum ging, die 32-Bit-Anweisungen zu lernen, war es etwas beschönigt. Ich denke, nachdem ich mit dem Maschinencode herumgespielt habe, wird es vielleicht etwas offensichtlicher, aber ich verstehe immer noch nicht ganz, warum es so zufällig erscheint. Einige Befehle sind völlig normal, wie die Registerwerte, und sind ziemlich einfach zu verstehen. Andere Befehle sind jedoch fragmentiert und scheinbar zufällig in der Anweisung verteilt.Maschinencode Anweisung Anatomie

What we were taught

Gibt es eine Methode, um den Wahnsinn, oder irgendwelche speziellen Tricks, die in einer gegebenen Befehlsbits, um herauszufinden, gehört zu dem Befehl?

+3

Ja, Sie benötigen das Referenzhandbuch für den Prozessor. Es gibt keinen anderen Weg, Maschinencode zu verstehen. –

+0

Genau! Und Sie wollen wirklich in hex arbeiten, denn das nutzen auch alle anderen. Binary ist zu verworren, um damit zu arbeiten. – dom0

+0

@ dom0 Ich weiß, dass das im Allgemeinen von binären Daten wahr ist, aber ist es sogar wahr im Falle einer Anweisung wie dieser? Wenn dieses zweite Nibble "1101" ist, kann ich mir nicht vorstellen, dass "D" eine nützlichere Darstellung ist; Ich nehme an, dass das einzige, was man mit "D" machen kann, ist, es gedanklich in "1101" zu übersetzen. – yshavit

Antwort

1

Anweisungen sind dazu gedacht, direkt von einer Hardware verarbeitet zu werden, wobei jedes Bit der Anweisung tatsächlich die Hardwareleitungen hoch oder niedrig setzt. Offensichtlich muss der Befehl so aufgebaut sein, dass er die Hardware konfiguriert, um die Aufgabe zu erledigen. Und da Hardware, insbesondere Prozessoren, teuer zu gestalten sind, macht es Sinn, dass die Hardware das Format des Befehls definiert.

So wird jede Architektur ihr eigenes Befehlsformat haben. Und wie in den Kommentaren angegeben, finden Sie dieses Format in den Referenzdokumenten. Ansonsten kann ich nichts mehr hinzufügen.