0 Daumen
910 Aufrufe

Die Frage lautet:

Ein Maschinencode-Abschnitt enthält 2 Befehle mit je 2 Operanden zu 16 Bit und einen Befehl mit einem 16-Bit-Operanden. Die Opcodes haben jeweils 8 Bit.
Wie viele Byte umfasst der gesamte Abschnitt?


Wir haben bereits mit unserem Lehrer die Lösung aufgeschrieben doch ich verstehe diese Aufgabe echt gar nicht :(

Lösung:   2 x (1 Byte + 2 Byte x 2) = 10 Byte

                  1 x (1 Byte + 2 Byte)       = 3 Byte

                                                     Beide Ergebnisse zusammenaddiert ergeben 13 Byte.

Vielleicht kann mir jemand den Lösungsweg erklären, ich wäre sehr dankbar :) 

Avatar von

1 Antwort

0 Daumen
 
Beste Antwort

Anfangs mal 8 Bit =  1 Byte

Ich glaube es ist so:
Zu jedem Befehl gibt es einen Opcode .Die Größe dieser Opcodes muss im Speicher belegt werden,wenn die Befehle ausgeführt werden.

Du hast den Befehl A und B.

A soll jetzt zwei mal ausgeführt werden und B ein mal.

Für den Abschnitt gilt also : 2*A+B

Woraus besteht nun A ?

Einmal aus dem Opcode = 1 Byte

Und aus den zwei Oberanden .

Ein Oerand hat  16 Bit = 2*8 Bit = 2 *1 Byte

Also hat man für A eine Größe von 1 Byte+(2*1 Byte ) *2.

Jetzt führen wir zwei mal A aus und haben damit :

2*( 1 Byte+(2*1 Byte ) *2)

Für B haben wir nun auch den Opcode (= 1Byte ) und den Operanden = 2 Byte

Jetzt addieren wir A und B und erhalten dein Ergebnis.

Avatar von

Danke, jetzt verstehe ich die Aufgabe endlich!!!!! :)

danke Marvin Pogoda


wieso hast du A-Befehle 2 Mal ausgeführt und B- Befehle nur einmal ??

Etwas spät, aber :
"Maschinencode-Abschnitt enthält 2 Befehle mit je 2 Operanden zu 16 Bit und einen Befehl "

Sind insgesamt 3 Befehle, wobei Befehle der Form A zwei mal auftreten.

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community