Assembler Neuling
-
Hallo,
ich bin noch kompletter Neuling in der Assembler Programmierung.
Wir benutzen ein Atmega128 Chip.Ich habe versucht das anhand von Beispiel Codes zu verstehen:
outhex8 R16 Inhalt in HEX - Darstellung ausgeben ( 8bit) outhex8: ;Ausgabe Byte push r16 lsr r16 lsr r16 lsr r16 lsr r16 rcall outhex4 pop r16 push r16 rcall outhex4 pop r16 ret
Leider kann ich damit nicht wirklich viel anfangen. Finde ich irgendwo die bedeutung dieser begriffe. Lsr usw.
Ich weiß nur das rcall eine weitere funktion aufruft. push etwas auf den Stack drauflegt und pop es wieder vom Stack runternimmt.
Aber trotzdem komme ich da noch nicht so ganz klar.gruß
-
C++Web schrieb:
Leider kann ich damit nicht wirklich viel anfangen. Finde ich irgendwo die bedeutung dieser begriffe. Lsr usw.
Natürlich, einfach googeln:
http://www.atmel.com/dyn/resources/prod_documents/DOC0856.PDF
Da is alles zu deinem prozessor drin (benutz die suchfunktion deines pdf readers)
LSR -> logical shift right
-
ok, danke schonmal.
also ich versuch es in meinen eigenen Worten: LSR:
verschiebt den wert im register um 1 bit nach rechts.
Setzt das 7 bit auf 0
und das 0te mit einer carry flag?ist wahrscheinlich völliger qautsch
-
Nein, ist nicht quatsch.
Die Idee des Programmes oben ist es das Low und High Nibble des Bytes in r16 zu trennen.
Die Routine outhex4 kann sicher nur mit 4 Bit Nibbles umgehen.in C:
outhex4(r16 >> 4);
outhex4(r16);