www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Syntax AVR-Assembler


Autor: Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin!
Ich suche die korrekte Notation im AVR-Studio für
1) den aktuellen Programzähler (Z80, 8086 hieß das mal $) und
2) lokale Labels.
Gibt es das für die AVRs nicht mehr?
Danke!

Autor: Kachel - Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meinst Du Sowas?

 ldi wl,10+'0'              ;Zehner-Stelle als ASCII, Zahl ist unter 0
 dec wl                     ;Zehner runter und
 subi xl,-10                ;10 addieren bis positiv wird
 brlo pc-2                  ;positiv? nein, 2 Zeilen hoch...
 rcall lcd_format           ;ja, Zehner Stelle ausgeben...

KH

Autor: Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, genau das!
Vielen Dank!

Kann es sein, daß man PC nicht groß schreiben darf?

Autor: vielleicht so (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das macht man mit label.

  ldi R16,8
loop:
  dec R16
  brne loop

die label sind global. Wie das mit einem label in einem Makro geht hab 
ich vergessen.

Autor: andromeda (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich schreibe PC immer (na meistens) gross. Geht.

Autor: Müller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>> Das macht man mit label
wenn man's anders kann, kann man's auch anders machen. Ab 10 Label 
wird's nämlich lästig.

Hab's gefunden. Assembler-Option -c ist streng mit 
Groß-Klein-Schreibung.
Allen vielen Dank!

Autor: Kachel - Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Das macht man mit label.

Ich weiß...

Ich nutze diese Schreibweise ja auch nur in Macros und in includierbaren 
Routinen (Programm-Module). Kleiner Vorteil dieser Schreibweise: Es gibt 
keine Namenskonflikte, da man nicht versehentlich die gleichen 
Bezeichner ein weiteres mal verwendet, was in Deinem Beispiel 
vorprogrammiert ist (wer "loop" einmal als Label-Namen verwendet, der 
macht das auch öfters). Beim modularen Programmieren kann das schnell in 
die Hose gehen...

Übrigens könnte ich jetzt sagen, dass man Register nicht mit "r16" 
anspricht, sondern mit "sprechenden Namen". Mir ist aber jetzt nicht 
danach... ;-)

Es hat eben jeder seinen Stil, keiner (Stil) wird völlig falsch sein, 
aber auch keiner völlig richtig. Es kommt halt immer auf die Situation 
an, wobei meist mehrere Wege nach Rom führen.

KH

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@KH in Macros verwendete Labels werden automatisch "umbenannt"
.macro XYZ
loop:
 dec temp
brne loop

.endmacro

loop:
 XYZ
 XYZ
 XYZ
rjmp loop

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.