Forum: Mikrocontroller und Digitale Elektronik Syntax AVR-Assembler


von Müller (Gast)


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!

von Kachel - Heinz (Gast)


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

von Müller (Gast)


Lesenswert?

Ja, genau das!
Vielen Dank!

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

von vielleicht so (Gast)


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.

von andromeda (Gast)


Lesenswert?

Ich schreibe PC immer (na meistens) gross. Geht.

von Müller (Gast)


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!

von Kachel - Heinz (Gast)


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

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

@KH in Macros verwendete Labels werden automatisch "umbenannt"
1
.macro XYZ
2
loop:
3
 dec temp
4
brne loop
5
6
.endmacro
7
8
loop:
9
 XYZ
10
 XYZ
11
 XYZ
12
rjmp loop

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.