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);


Anmelden zum Antworten