Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 19:16

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[MIPS] Kann wer helfen?

Discussion on [MIPS] Kann wer helfen? within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Nov 2014
Posts: 9
Received Thanks: 0
[MIPS] Kann wer helfen?

Hallo ihr liebsten ePvP-Menschen,
ich wollte fragen ob einer von euch mir hier helfen kann?
Gegeben ist folgende Aufgabe und ich habe einfach keine Ahnung wie ich das umsetzen sollte...
"Schreiben Sie ein Assemblerprogramm, das zuerst einen Integer n einliest, dann n Integerzahlen
a1, . . . , an einliest, auf den Stack schreibt und in umgekehrter Reihenfolge wieder ausgibt. Dokumentieren
Sie Ihr Programm kurz und prägnant.
Achtung: Der Stackpointer $sp soll immer auf die letzte belegte Speicherzelle des Stacks zeigen!"
Wäre zutiefst dankbar, sollte hier jemand helfen können!

Also mir ist klar das ich im txt segment schonmal die eingabeaufforderungen habe und die über die passenden syscalls laden muss.. dann einen array erstelle mit der länge der ersten eingegeben zahl und ihn dann selber mit zahlen füllen muss... nach jeder ausgabe muss irgendwie der stack um eins verringert werden damit der pointer auf die letzte speicherzelle des arrays zeigt, wobei über den print syscall vorher der letzte wert ausgegeben wird wobei ich eine schleife brauche bis beq 0 ( glaube ich?) also bis das array eben 0 werte enthält..
aber holy ****.. wie setz ich das in mips um?
ohnoesimnoob is offline  
Old 11/08/2014, 18:06   #2
 
elite*gold: 9
Join Date: Dec 2009
Posts: 1,071
Received Thanks: 819
Ich habs mal probiert. Ist leider schon 2 Semester her, dass ich das machen musste.
Dieser Code kompiliert zwar, macht aber noch nicht ganz das was du haben willst. Hatte keine Lust da jetzt noch Fehler zu suchen... Fertiger Code wär ja aber auch langweilig
Code:
.text
.global main
main:
	li $v0, 5			# syscall 5 - Eingabe einer Ganzzahl, Rückgabewert in $v0
	syscall
	
	move $t0, $v0			# Rueckgabewert nach $t0 verschieben (Zaehler fuer inputLoop)
	move $t1, $v0			# Rueckgabewert nach $t1 verschieben (Zaehler fuer outputLoop)
	
	inputLoop:
		beq $t0, $0, outputLoop
		
		li $v0, 5		# syscall 5 - Eingabe einer Ganzzahl, Rückgabewert in $v0
		syscall
		
		addi $sp, $sp, -4	# Stack-Platz reservieren
		move $sp, $v0		# Eingelesenen Integer auf Stack schieben
		
		subi $t0, $t0, 1	# Zaehler dekrementieren
		j inputLoop
	
	outputLoop:
		beq $t1, $0, end
		
		li $v0, 1		# syscall 1 - Ausgabe einer Ganzzahl
		move $a0, $sp		# Zahl in $a0 (Parameter für syscall)
		syscall
		
		addi $sp, $sp, 4	# Stack-Platz wieder freigeben
		subi $t1, $t1, 1	# Zaehler dekrementieren
		j outputLoop
	
	end:
		li $2, 10		# Programmende
		syscall
.Infinite is offline  
Thanks
1 User
Old 11/08/2014, 19:32   #3
 
elite*gold: 0
Join Date: Nov 2014
Posts: 9
Received Thanks: 0
hab den code passend abändern können! danke!

// oder auch nicht. ach **** it.
ohnoesimnoob is offline  
Old 11/08/2014, 21:10   #4
 
elite*gold: 9
Join Date: Dec 2009
Posts: 1,071
Received Thanks: 819
Okay, weil du es nicht hinkriegst hab ich es dann mal für dich korrigiert:

Mein Fehler war, dass man Sachen natürlich mit sw(store word) auf den Stack schreibt, weil im $sp Register ja eine Speichergeschrieben steht. Ausgelesen werden müssen die Werte folglich auch mit lw(load word). Außerdem war an einer Stelle $v0 und $t0 vertauscht glaube ich...

Code:
.text
.global main
main:
	li $v0, 5			# syscall 5 - Eingabe einer Ganzzahl, Rückgabewert in $v0
	syscall
	
	move $t0, $v0			# Rueckgabewert nach $t0 verschieben (Zaehler fuer inputLoop)
	move $t1, $v0			# Rueckgabewert nach $t1 verschieben (Zaehler fuer outputLoop)
	
	inputLoop:
		beq $t0, $0, outputLoop
		
		li $v0, 5		# syscall 5 - Eingabe einer Ganzzahl, Rückgabewert in $v0
		syscall
		
		subi $sp, $sp, 4	# Stack-Platz reservieren
		sw $v0, 0($sp)		# Eingelesenen Integer auf Stack schieben
		
		subi $t0, $t0, 1	# Zaehler dekrementieren
		j inputLoop
	
	outputLoop:
		beq $t1, $0, end
		
		li $v0, 1		# syscall 1 - Ausgabe einer Ganzzahl
		lw $a0, 0($sp)		# Zahl in $a0 (Parameter für syscall)
		syscall
		
		addi $sp, $sp, 4	# Stack-Platz wieder freigeben
		subi $t1, $t1, 1	# Zaehler dekrementieren
		j outputLoop
	
	end:
		li $2, 10		# Programmende
		syscall
.Infinite is offline  
Thanks
1 User
Old 11/08/2014, 21:50   #5
 
elite*gold: 0
Join Date: Nov 2014
Posts: 9
Received Thanks: 0
Vielen lieben Dank!
ohnoesimnoob is offline  
Reply


Similar Threads Similar Threads
Kann wer Helfen ?
09/30/2012 - Combat Arms - 5 Replies
Hey wenn ich Combat Arms lädt es ganz normal und bevor das mit ID und PW kommt kommt so eine meldung hab Ca schon 2 mal neu Installiert aber immer noch das gleiche http://s14.directupload.net/images/120929/pzg4kxm y.jpg
Suche einen der Minecraft Maps erstellen kann / helfen kann [Biete] elite*gold
02/03/2012 - elite*gold Trading - 2 Replies
Brauche hilfe bei der Maperstellung (Server) und generell ein bisschen. Wäre um schnelle Hilfe dankbar. Wie viel elite*gold lässt sich verhandeln
kann wer mir pls helfen[ Bitte Helfen!]
11/01/2010 - Metin2 Private Server - 1 Replies
kann wer mir helfen habe ne frage weißt wer ob man von megaload was raus nehmen kann was man hohgeladen hat?
kann wer mir pls helfen[ Bitte Helfen!]
04/01/2010 - WoW Private Server - 2 Replies
hi ich suche ein kostenlosen download für World of Warcraft: Wrath of the Lich King Expansion (das Blaue) könnte jemand mir vill. eine link geben weil bei rising-gods muss man da allles einzelnt downloaden und das dauert zu lange gebe viele thx nach nachfrage bitte um link :handsdown: :handsdown: :handsdown: :handsdown: :handsdown: :handsdown: :handsdown: :handsdown: :handsdown: :handsdown: :handsdown: :handsdown: :handsdown: :handsdown: hab´s gefunden Danke!! bitte thread...
kann mir wer Helfen??
10/05/2009 - Metin2 Private Server - 1 Replies
Also ich hattte einen 1 Klick Server aber der ist iw gecrasht und jetzt bekomme ich den nichtmehr hin kann mir wer per TW helfenß



All times are GMT +2. The time now is 19:16.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.