AVR Assembler Label

Antworten
Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

AVR Assembler Label

Beitrag von Mathias »

Wieso muss bei AVR das Label zwingend deklariert werden ?
Bei normalen Intel-Code, kann man auf die Deklaration verzichten, wen ein Label ein @ hat.

Code: Alles auswählen

procedure asmtest1; assembler;
label
  L1;
asm
  L1:
  jmp L1
end;
 
// Wird nur unter Intel kompiliert.
procedure asmtest2; assembler;
asm
  @L1:
  jmp @L1
end;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: AVR Assembler Label

Beitrag von Mathias »

Niemand eine Idee, wieso dies so ist.
Ist dies ein Bug von AVR-Assembler ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

FPK
Beiträge: 65
Registriert: Mi 21. Mai 2008, 19:38
Wohnort: Erlangen

Re: AVR Assembler Label

Beitrag von FPK »

AVR kennt logischerweise kein Intel-Assembler. Inline-Assembler ist hier immer GNU, d.h. Labels lokal zum Assemblerblock muss man mit . einleiten:

Code: Alles auswählen

 
procedure asmtest1; assembler;
asm
  .L1:
  jmp .L1
end;
 

Mathias
Beiträge: 6160
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: AVR Assembler Label

Beitrag von Mathias »

Danke, jetzt geht es. Dann kommt das @ von Intel-Assembler und nicht von FPC-Inline-Assembler ?

Dies werde ich AVR-Wiki-Tutorial vermerken.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

FPK
Beiträge: 65
Registriert: Mi 21. Mai 2008, 19:38
Wohnort: Erlangen

Re: AVR Assembler Label

Beitrag von FPK »

Mathias hat geschrieben:Danke, jetzt geht es. Dann kommt das @ von Intel-Assembler und nicht von FPC-Inline-Assembler ?


FPC folgt eigentlich immer den Assembler-Syntax der jeweiligen CPU-Plattform.

Antworten