-
-
Erfahrener Benutzer
Robotik Visionär
Hallo AIKI,
ich habe jetzt auch PonyProg. Und sehe die Codesequenzen wie Du sie zeigst. Die Frage war jetzt für mich - warum ist das so programmiert?
Dazu habe ich mir Folgendes überlegt (vielleicht kann das bitte ein Programmierprofi kommentieren ?):
bei den Programmen (z.B. in Assembler) wird üblicheweise die Folge MSB/LSB (most significant byte/least significant byte) eingehalten.
Beispiel mit einem tiny-Befehl in Assembler:
ADIW R25:R24, 2 ;Subtrahiert dez2 vom Word in den beiden Registern R25:R24
siehe dazu auch die Notiz:
http://de.wikipedia.org/wiki/Bitwertigkeit
Es liegt also bei dieser Denkweise nahe, den Code als Word-Schreibweise (zwei Bytes bilden ein Paar) in dieser Art zu präsentieren: das erste Byte ist das HÖHERWERTIGE (höhere Adresse) und das zweite ist das NIEDERWERTIGE (niedrigere Adresse). Die Adressenfolge der Bytes ist demnach:
2 1 4 3 6 5 ...
Es ist also nur eine formalistische Geschichte. Und wie Du vermutlich feststellen kannst - der HEX-Code, den Du mit Ponyprog einlädst, wird (normalerweise, ohne Deine byte swap - Umstellung) in dieser Reihenfolge dargestellt - aber im Controller stehts dann schon richtig drin - und funzt auch wirklich
.
Nachtrag: ADIW ist die Addition, SBIW die Subtraktion, sorry.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen