-         

+ Antworten
Ergebnis 1 bis 8 von 8

Thema: Anfängerfrage zu Unterprogrammen

  1. #1
    Gast

    Anfängerfrage zu Unterprogrammen

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo!

    Was ist die einfachste Möglichkeit zum Verwenden von Unterprogrammen in ASM?
    Ich will einen bestimmten Programmteil aufrufen, und wenn dieser abgearbeitet ist, soll es im Code wieder normal weiter gehen.

    Ich habe ein Tutorial zu diesem Thema gelesen, aber es hat mich nur verwirrt anstatt zu helfen.

    Bitte um eure Hilfe.

  2. #2
    Ich kann dir einmal etwas über die Grundlagen erzählen =) aber ich java halt...


    du hast dein Programm...
    .
    .
    .
    int v=0; //Ergebniss
    int b=3; //zahl eins
    int c=5; //zahl zwei
    v=rechne(b,c){ //rufst irgentwo eine Methode auf und übergibst die zwei Zahlen
    return b+c; //b und c werden addiert und zurückgegeben
    }
    .
    .
    . //jetzt geht das Programm weiter

    bei C++ gehts (fast) gleich
    nur das ist halt objektorientiert

  3. #3
    Gast
    Danke, aber dass hilf mir nichts, ich will wissen wie man dass in ASSEMBLER macht.

  4. #4
    da assembler nicht objektorientiert ist...
    ich glaub das geht gar ned...=) aba ich weis ned genau
    in assembler wird ja linear runtergeproggt
    kannst es nich mit einer if machn? statt dem Methodenaufruf die if

    aber wie gesagt, bin mir nicht ganz sicher

  5. #5
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    47
    Beiträge
    1.246
    Hallo Gast,

    Zitat:

    RCALL irgendwas ; Springe in das UP irgendwas
    [...] hier geht es normal weiter im Programm

    Hier landet der Sprung zum Label irgendwas irgendwo im Programm,

    irgendwas: ; das hier ist das Sprungziel
    [...] Hier wird zwischendurch irgendwas getan
    [...] und jetzt kommt der Rücksprung an den Aufrufort im Programm:
    RET

    Beim RCALL wird der Programmzähler, eine 16-Bit-Adresse, auf dem Stapel abgelegt. Das sind zwei
    PUSHs, dann sind die 16 Bits auf dem Stapel. Beim Erreichen des Befehls RET wird der Programmzähler
    mit zwei POPs wieder hergestellt und die Ausführung des Programmes geht an der Stelle weiter,
    die auf den RCALL folgt.

    Zitat Ende

    Quelle: http://www.avr-asm-tutorial.net/beginner_de.pdf auf Seite 20 im pdf

    War das so verwirrend?
    Gruss, Michael

    P.S.@JavaMasta: Wenn du dir nicht sicher bist, warum postest du es dann? (Kopfschüttel)

  6. #6
    Gast
    Danke Michael!!
    Deine Erklärung war nicht verwirrend! \/
    @Java [-X

  7. #7
    Wollt ja nur ein bsp geben....=)

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.11.2003
    Ort
    Freiburg im Breisgau
    Alter
    28
    Beiträge
    2.624
    Hi Gast!
    Ich denke man sollte dir noch den Tipp geben, dass man für diese Befehle den Stackpointer initalisieren muss!
    Wenn Du nicht weißt, wie das geht, meld Dich ruhig!
    Fragen schadet nie!

+ Antworten

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •