Forum: Mikrocontroller und Digitale Elektronik Fehlersuche eines CPU12-Programms


von CPU12_E (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich wäre sehr glücklich, wenn mir jemand Helfen könnte beim folgendem 
Problem:

Die Frage lautet:
"Welcher Wert steht beim 1.Aufruf des Unterprogramms SUM(2) nach 
Ausführung des Befehls LDX 6,SP (3) in x?

Danke

von Helmut L. (helmi1)


Lesenswert?

Das was du beim aufruf der Routine mit PSHD auf dem Stack abgelegt hast.

LDX 6,SP  heist in X den Wert ablegen der im Stack (SP) + 6 abgelegt 
worden ist.

von Em R. (cpu12_e)


Lesenswert?

also sprich $0003 nur. Und was bedeutet die +6 für mich?
Danke

von Helmut L. (helmi1)


Lesenswert?

Em Re schrieb:
> Und was bedeutet die +6 für mich?

Das ist der Offset der auf dem Stackpointer addiert werden muss, darauf 
wo er dann hinzeigt dessen wert landet dann in X Register.

Dein Stack sieht folgendermassen aus.

+6   [den Wert den PSHD ablegt]
+4   [ die Rueckspringaddresse vom JSR]
+2   [ den Wert von PSHX]
+0   [ den Wert von PSHD]

SP+6 zeigt dann auf den Wert den das erste PSHD auf dem Stackablegt.
sowas mach man um Parameter ueber den Stack an ein Unterprogramm zu 
uebergeben.

von Em R. (cpu12_e)


Lesenswert?

ok danke verstehe, aber dann müsste dann doch $0009 stehen oder nicht?
PSHD $0009

von Helmut L. (helmi1)


Lesenswert?

Em Re schrieb:
> ok danke verstehe, aber dann müsste dann doch $0009 stehen oder nicht?
> PSHD $0009

Das kann ich dir nicht sagen. Beim aufruf von JSR SUM seht da nur PSHD.
Was in Register D drinsteht kann ich so nicht sehen.

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.