Forum: Offtopic Ablauf von Maschienen COde


von Heip L. (heipline)


Angehängte Dateien:

Lesenswert?

Hallo
Habe Probleme mit der b. also das in der Tabelle einzutragen.

a) Ermitteln Sie von folgendem Programm den Maschinencode mit Adressen:
MAIN:
ORG 0FFEh
 MOV R2, A
ADD A, #04h
LCALL SR
MOV @R0, A
LJMP 8091h


SR:
ORG 3020h
PUSH ACC
INC A
MOV 07, A
POP ACC
RET




b) Das Programm werde abgearbeitet. Tragen Sie in die unten stehende 
Tabelle die Ergebnisdaten ein, die nach Ablauf im internen Datenspeicher 
und im ARegister abgelegt sind.
(Die TAbelle ist im Anhang)


Lösung:
a) Die Lösung ist im Anhang

b) Lösung im Anhang
Bin bis Lcall SR gekommen dann muss ich ja zum unterprogramm . da habe 
ich schwirigkeiten.
ALso habe 10 bei 08h also beim ersten stack eingetragen. Bis dahin

Vielen Dank

von Christian B. (casandro)


Lesenswert?

Das Geile daran ist, dass der OP hier eine Antwort erwartet, ohne dass 
er die Frage überhaupt komplett gepostet hat.

von Wolfgang (Gast)


Lesenswert?

Christian B. schrieb:
> Das Geile daran ist, dass der OP hier eine Antwort erwartet, ohne dass
> er die Frage überhaupt komplett gepostet hat.

Nimm dir erstmal einen Kaffee. Was fehlt dir an der Fragestellung?

Heip L. schrieb:
> Tragen Sie in die unten stehende Tabelle die Ergebnisdaten ein, die
> nach Ablauf im internen Datenspeicher und im ARegister abgelegt sind.

> Bin bis Lcall SR gekommen ...

von Michael U. (amiga)


Lesenswert?

Hallo,

ich kenne den Prozessor jetzt nicht, zum Inhalt des Stackpointers und 
dessen Verhalten sehe ich auch keinen Hinweis.

Wenn das nicht angegeben ist, spielt es auch direkt keine Rolle.
Beim LCALL wird eben auf dem Stack gerettet, was die CPU da rettet, beim 
RET wird der Kram eben zurückgeholt.

In der SR wird ja nichts weltbewegendes gemacht, ACC wird gerettet,
A um eins erhöht und nach 07 geschreiben, wenn ich die Mnemotic jetzt 
richtig interpretiere.

PS: ach waren das noch Zeiten, aber eben bei mir 6800, 6502, Z80...

Gruß aus Berlin
Michael

von Wolfgang (Gast)


Lesenswert?

Michael U. schrieb:
> ich kenne den Prozessor jetzt nicht, zum Inhalt des Stackpointers und
> dessen Verhalten sehe ich auch keinen Hinweis.

Lass es einen abstrakten Prozessor sein.

Da nichts weiter über den Stack gesagt wird, kannst du einfach davon 
ausgehen, dass der Stack außerhalb des fraglichen Speicherbereichs 
liegt. So einfach können solche Aufgabenstellungen sein.

von Christian B. (casandro)


Lesenswert?

Wolfgang schrieb:
> Nimm dir erstmal einen Kaffee. Was fehlt dir an der Fragestellung?

Also ohne Prozessortyp, bzw der Opcodeliste ist diese Aufgabe streng 
genommen nicht lösbar. Man kann nur raten was diese Opcodes machen 
sollen.

von Wolfgang (Gast)


Lesenswert?

Christian B. schrieb:
> Man kann nur raten was diese Opcodes machen sollen.

Aufgabenteil a) ist bereits gelöst. Alleine die bekannten Adresses geben 
ausreichen Anhaltpunkte für das Puzzle. Und wenn man sich an die 
üblichen Konventionen für Assembler hält, bleibt nicht viel Spielraum 
für die Interpretation, was da im Datenbereich passiert.

Wie das bei solchen Aufgaben so ist: Alles was nicht genauer angegeben 
ist, spielt für die Lösung keine Rolle.

von Michael U. (amiga)


Lesenswert?

Hallo,

aus Neugier mal geschaut: ist ein 8051, damit hatte ich nie was am Hut.

Gruß aus Berlin
Michael

von Heip L. (heipline)


Lesenswert?

Das ist ein 8051
So ich die code Liste hoch laden??

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.