Rückgabewert aus Funktion ( Assemblerrutine)

Dieter
 
Avatar
 
Subject:

Rückgabewert aus Funktion ( Assemblerrutine)

 · 
Posted: 22.07.2012 - 13:40  ·  #1
Hallo zusammen
Bin gerade dabei meine AVR-Library auf Xmega anzupassen,
dabei ist mir aufgefallen das der Compiler was anderes zurückgibt als früher.
=> Rückgabewert aus Funktionen _ACCA

Beispiel

function test(.......) :byte
Var loc :byte;
begin
asm;
...
...
ldi _ACCB,00001111b
endasm;
return(_ACCB);
end;

ASMfile steht

...
endasm;
in _ACCA,_ACCB => Ruckgabewert Falsch !

Müste doch eigentlich wie früher mov _ACCA,_ACCB stehen.

oder geht nur noch

function test :byte
Var loc :byte;
begin
asm;
...
...
ldi _ACCB,00001111b
std Y+000h,_ACCB //Locale Variable Loc
endasm;
return(loc);
end;

AVRco Ver 05.04.03


Dieter
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Rückgabewert aus Funktion ( Assemblerrutine)

 · 
Posted: 22.07.2012 - 16:00  ·  #2
Hallo Dieter,

das muss ich untersuchen. Aber im XMega gibt es leider erhebliche Unterschiede bei den Memory Typen.
Aber warum nicht
LDI _ACCA, xxxx
endasm;
end;

rolf
Dieter
 
Avatar
 
Subject:

Re: Rückgabewert aus Funktion ( Assemblerrutine)

 · 
Posted: 22.07.2012 - 16:52  ·  #3
Hallo Rolf !

das mit dem

LDI _Accu,xxx funktioniert aber ist nicht meine Lösung

=> nur Beispiel / xxx ist variabl

des weiteren will der Compiler das RETURN (...) haben

=> Funktion without Return Value !!

Danke für die schnelle Antwort

DIeter
rh
Administrator
Avatar
Gender:
Location: Germany
Age: 24
Homepage: e-lab.de
Posts: 5558
Registered: 03 / 2002
Subject:

Re: Rückgabewert aus Funktion ( Assemblerrutine)

 · 
Posted: 22.07.2012 - 17:10  ·  #4
Hallo Dieter,
Code
{$NoReturnCheck}
Function abc : boolean;
begin
  ...
  LDS       _ACCA, memX; // memory location
end;

So muss es gehen. 8bit Werte immer in _ACCA, 16bit Werte in _ACCB/_ACCA, lo/hi

rolf
Dieter
 
Avatar
 
Subject:

Re: Rückgabewert aus Funktion ( Assemblerrutine)

 · 
Posted: 22.07.2012 - 20:31  ·  #5
Danke Rolf !

Super Sevice
Genau das brauche ich !! ({$NoReturnCheck})
Jetz geht es auch ohne Hintertüre.

Dieter
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 14 · Cache Hits: 14   93   107 · Page-Gen-Time: 0.048331s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI