-         

Ergebnis 1 bis 7 von 7

Thema: If Befehl in Assembler

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.03.2006
    Beiträge
    200

    If Befehl in Assembler

    Anzeige

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

    ich habe mal versucht den IF Befehl in meinem Blinkerprogramm zu verwenden. Irgendwie mag aber AVRstudio (v4.13) den Befehl nicht.

    Code:
    count_off:
    .IF zaehler0 <= zeit0
      inc zaehler0
      rjmp count_off
    .ENDIF
    Der Assembler bringt mir schon in der 1. Zeile .IF.... einen Fehler:
    syntax error, unexpected REGDEF

    Weiß jemand bescheid?

    Gruß, JK

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2006
    Ort
    Karlsruhe/München
    Alter
    27
    Beiträge
    587
    Hi,

    if gibts in ASM nicht, du musst das folgendermaßen machen:
    (R17 ist als Beispielregister gedacht)
    CPI R17,(deine Zahl plus 1)
    BRSH endif
    inc zaehler0
    rjmp count_off
    endif:

    Noch 2 Sachen: 1. Was mit dem Punk davor, ist immer eine ASM Derititife wird also von dem Assembler berarbeitet
    2. <= versteht sich mit dem Befehlssatz von den Avrs nicht so gut... (Man muss es immer durch Umwege machen)

    Grüße

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.03.2006
    Beiträge
    200
    nun, ich versuche gerade meinen Sprachschatz zu erweitern. Meine Blinkschaltung funktioniert schon. Aber ich modifiziere meine Programme und baue neue Befehle ein, die für mich neu sind.

    In der Assembler-Hilfe steht der Befehl drin, also müsste es eigentlich gehen.
    Und bei dem Befehl handelt es sich um eine Direktive an den Assembler.
    Der AVR versteht diesen Befehl natürlich nicht

  4. #4
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die Assembler direktive wird nur beim Übersetzen am PC ausgeführt, nicht wenn das Programm läuft. Es macht also keinen Sinn dabei auf die Register / Variablen des Assemblers zurückzugreifen. HInter dem IF muß ein "konstanter" Ausdruck stehen, der nur noch von per .equ definierten Konstanten abhängen darf. In diesem Fall kommt der Assembler wohl etwas durcheinander und gibt die etwas verwirrende Fehlermeldung.

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.03.2006
    Beiträge
    200
    ja, das wäre wohl die Erklärung dafür, dass es eine Fehlermeldung gibt.
    Ich hätte gedacht, dass der Assembler das in entsprechende Befehle umsetzt.

    Hatte mir jetzt extra das Buch von G. Schmitt gekauft, aber es wird da nix richtig erklärt. Alles sehr oberflächlich und durcheinander. Das ganze dannn gespickt mit Assemblerlistings. Da ist dann das PDf von Atmel noch besser für den Einstieg gedacht, leider in Englisch, so dass man ganz gern mal was überliest.

    Sorry, aber das musste jetzt mal raus.

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    45
    Beiträge
    2.236
    Ich hätte gedacht, dass der Assembler das in entsprechende Befehle umsetzt.
    Ne Du, warum nimmst Du nicht C ?
    Sehr hardware nah und trotzdem komfortabel ...
    Zu dem Buch, was ist das für ein Buch ?
    Heißt der Autor wirklich G. Schmitt, oder G. Schmidt, Autor von http://www.avr-asm-tutorial.net/avr_de/index.html ?

    Das würde mich wirklich interessieren !

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.03.2006
    Beiträge
    200
    Hi Sebastian,

    Der Autor heißt tatsächlich G. Schmitt, schaust du mal hier:
    http://www.amazon.de/Mikrocomputerte...7752460&sr=8-4

    Bevor ich auf C umsteige wollte ich mir erst mal den MC genauer anschauen,.
    Außerdem hab ich ja schon mal in Assembler programmiert, ist nur ne Weile her und war auch nicht soo tiefgründig. Etwas später werde ich wohl dann C nutzen.

    Außerdem, warum einfach wenns auch kompliziert geht...

Berechtigungen

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