Forum: Mikrocontroller und Digitale Elektronik Save Assembler Routinen, wie macht Ihr das?


von Binnesmann (Gast)


Lesenswert?

Moin,

ich weiß, jeder hat seinen Programmierstil. Mir geht gerade ein wenig
die Übersicht im Interruptfall verloren. Was auch dazu führt, dass sich
Fehler im Programm einschleichen. Jetzt habe ich schon viele Routinen
verkleinert, zerhackt und weitesgehend alle verwendeten Variabeln
vorher gepusht und nachher gepopt. Ich verwende aber auch die Register
R0 bis R7. Die kann man aber leider nicht Pushen und Popen. Wie macht
Ihr das? Denke ich nur zu komplex? Bin für Denkanstösse die meinen
Programmierstil verändern dankbar.

Ich verwende gerade übrigens einen 80C517A.

Gruß Binnesmann

von Peter D. (peda)


Lesenswert?

Man muß dem Assembler vorher sagen, welche Registerbank man verwendet,
z.B.:

using 0 ;Bank 0

Und dann pusht man die Register so:

push ar0
push ar1
;usw.


Peter

von thkaiser (Gast)


Lesenswert?

Die Register werden im internen Speicher abgebildet. Wenns der Assembler
mit der Methode von peter nicht macht, gehts auch so:

push $00
push $01
.
.
.


$00..$07 = R0..R7 (Registerbank 0)
$08..$0F = R0..R7 (Registerbank 1) usw. bis $1F

Mit dieser Abbildung im Speicher kann man ganz gemeine Sachen machen,
wenn man indirekte Addressierung hinzuwürfelt... da steigt niemand mehr
durch :D

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.