Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Technische Informatik » Assembler, Analyse und Ausführung » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Assembler, Analyse und Ausführung
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
deppensido
Doppel-As


Dabei seit: 23.12.2012
Beiträge: 144

Assembler, Analyse und Ausführung Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

hallo,

bei folgendem Aufgabentyp bräuchte ich dringend Hilfe, da nächsten Dienstag Klausur ist und so eine Aufgabe 20 - 25 Punkte bringt, was bei 90 erreichbaren Punkten nicht wenig ist. Es geht in der Regel darum einen Assemblercode zu verstehen, was ich mit der Funktionsskizze versucht habe (siehe Anhang) ich mir jedoch total unsicher bin, ob das so stimmt. Vermutlich eher nicht. Danach soll man in der Regel einen Assemblercode ausführen und die Werte des Stackpointer etc. in einer Tabelle eintragen (siehe Anhang). Hier habe ich überhaupt keine Ahnung, wie ich da vorgehen muss.

Meine Idee bisher: Assemblercode kommentieren, was mir allerdings nicht weitergeholfen hat.

Wie würdet ihr so eine Aufgabe angehen, von der Logik her etc.? Gibt es vielleicht einen Trick oder ähnliches? Ich hoffe mir kann jemand anhand dieser Aufgabe weiterhelfen, bin langsam echt verzweifelt. Es handelt sich übrigens um MIPS-Assemblersprache.

deppensido hat diese Bilder (verkleinerte Versionen) angehängt:
Aufgabe_Assembler.jpg AssemblerCode.jpg Funktionsskizze.jpg

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von deppensido: 18.09.2015 16:02.

18.09.2015 15:58 deppensido ist offline Beiträge von deppensido suchen Nehmen Sie deppensido in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Nachdem ich von MIPS noch nichts gehört habe, würde ich damit anfangen, es in eine für mich lesbare Sprache zu übersetzen (ohne Gewähr):
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
#include <iostream>

using namespace std;

int v0;
int s0;

int lcs(int* a0, int* a1) {
	cout << "a0 = " << *a0 << "   a1 = " << *a1 << "   v0 = " << v0 << endl;
	if (*a0 == 0 || *a1 == 0) //lcs 2. Absatz
		return 0;
	if (*a0 != *a1) { //lcs 3. Absatz 1. Zeile
		//case 2
		a0++; //Zeiger erhöhen
		lcs(a0, a1);
		s0 = v0;
		a0--;
		a1++;
		lcs(a0, a1);
		a1--;
		if (v0 == s0) return 0;
		v0 = s0;
	}
	else { //lcs 3. Absatz ab Zeile 2
		a0++;
		a1++;
		lcs(a0, a1);
		v0++;
		a0--;
		a1--;
		cout << "increment v0:  a0 = " << *a0 << "   a1 = " << *a1 << "   v0 = " << v0 << endl;
	}
}

int main() {
	int a0[] = {2, 1, 4, 0};
	int a1[] = {1, 4, 0};
	v0 = 0;
	lcs(a0, a1);
}

Und dann hilft es mir meist, das Programm auszuführen (bzw. in der Prüfung von Hand durchzugehen).
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
a0 = 2   a1 = 1   v0 = 0
a0 = 1   a1 = 1   v0 = 0
a0 = 4   a1 = 4   v0 = 0
a0 = 0   a1 = 0   v0 = 0
increment v0:  a0 = 4   a1 = 4   v0 = 1
increment v0:  a0 = 1   a1 = 1   v0 = 2
a0 = 2   a1 = 4   v0 = 2
a0 = 1   a1 = 4   v0 = 2
a0 = 4   a1 = 4   v0 = 2
a0 = 0   a1 = 0   v0 = 2
increment v0:  a0 = 4   a1 = 4   v0 = 3
a0 = 1   a1 = 0   v0 = 3
a0 = 2   a1 = 0   v0 = 3


__________________
Syntax Highlighting fürs Board (Link)
18.09.2015 17:21 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
deppensido
Doppel-As


Dabei seit: 23.12.2012
Beiträge: 144

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Vielen Dank für deine Hilfe. Ich bin jetzt alles nochmal Schritt für
Schritt durchgegangen und komm auf die gleichen Werte. smile
18.09.2015 21:04 deppensido ist offline Beiträge von deppensido suchen Nehmen Sie deppensido in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Technische Informatik » Assembler, Analyse und Ausführung