Hallo allerseits Ich wüsste gerne wie Thumb Code im Speicher angeordnet wird. Soll heissen: Annahme, A - 16Bit weit, B - 32 Bit weit. Sei nun folgendes Programm: A - Word alligned z.B. bei 0x00 B A Ist nun B bei 0x02 oder 0x04? Würde es gerne selber ausprobieren, habe aber zu schlechte Assembler Kenntnisse und gerade nicht das Vertrauen in mich herauszufinden, welche Instruktionen ich benutzen muss, damit sie sicher 32Bit weit sind. Ein kurzes Beispiel wäre super! Gruss Felix
Das "riecht" nach ARM ...?! Machen die Dokumentationen zu dem Prozessor keine Aussagen dazu? Nein? Dann würde ich einen andren Prozessor wählen.
Ich nehme an es geht Dir um Thumb2 Code, denn nur dieser kann sowohl 16 als auch 32 bit Instruktionen gemischt enthalten! In dem Beispiel wird Instruktion B nicht auf eine Word-Grenze aligniert, sie steht also an Adresse 0x2. Es geht ja darum gegenüber ARM code, der durchgängig 32 bit Instruktionen verwendet, Platz zu sparen. Wäre jede 32 bit Instruktion aligniert, so gelingt das nur schwerlich! ZigZeg
Für Codeadressen ist bei Thumb2 ein Alignment auf Halbworte vorgeschrieben, unabhängig davon, ob die Befehle 2 oder 4 Bytes lang sind.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.