0 Daumen
105 Aufrufe

Frage: Wie kann man das Wort 0x12345678 in little endian darstellen?


Hallo, ich bin gerade bei der Klausurvorbereitung und habe Probleme folgende Aufgabe zu lösen:

Aufgabe:

list ist eine Liste mit einzelnen aufeinanderfolgenden Bytes.

list:
.word 0x12345678, 0xA5A5A5A5, 0xCEFABEBA, 0x01020304

Zeichnen Sie die Anordnung der Daten im Speicher bei (wortweiser) Darstellung
(32bit) mit den dazugehörenden Speicheradressen unter Annahme des ARM Little
Endian-Schemas, wobei das Label „list:“ an der Adresse 0x40000010 steht.

Ist diese Darstellung für das erste Wort richtig? In dem Fall wäre ja 1 = MSB und 8 = LSB und der Speicherwachstum würde in diese Richtung gehen ->

0x40000010      0x4000018      0x40000020        0x40000028        = Adresse

7 8 5 6 3 4 1 2 = Wort

Das Skript gibt nicht an wie es mit der Adresseninkrementierung aussieht und im Internet fand ich bisher nur die Antwort, dass es immer um eins erhöht wird also quasi:

0x40000010      0x4000011      0x40000012        0x40000013        = Adresse

7 8              5 6            3 4                1 2          = Wort

Aber das macht für mich irgendwie kein Sinn. Könnte mir das jemand bitte erklären?

Von der Reihenfolge dachte ich bisher immer man kann sich das so merken:

Bei Wort: 0x12345678

Big Endian: | 12 | 34 | 56 | 78 |        //bleibt gleich
Little Endian: | 78 | 56 | 34 | 12 |     // über Kreuz vertauscht


Vielen dank im Voraus!

von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community