Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding
You last visited: Today at 17:01

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

Advertisement



MIPS Unterschied lw und sw

Discussion on MIPS Unterschied lw und sw within the General Coding forum part of the Coders Den category.

Reply
 
Old   #1


 
_Headsh0t_'s Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 13,882
Received Thanks: 9,861
MIPS Unterschied lw und sw

Hey,
ich hab ein kleines Verständnisproblem bezüglich des Unterschiedes von load_word und store_word in einem MIPS-Register.

Zu meinen Verständnis:
Um beispielsweise etwas in das Register $t1 zu laden macht man lw $t1, 0($s0)
Im Register $t1 steht also die Adresse 0($s0), hinter welcher z.B. das Wort "ABCD" steht, d.h. in $t1 steht die Adresse die auf "ABCD" verweist, richtig?

Würde aber sw $s0, 0($t1) nicht das gleiche machen wie lw $t1, 0($s0)?
sw $s0, 0($t1) speichert doch das was in $s0 steht an die Speicherstelle 0($t1) also 0($t1) = $s0
lw $t1 0($s0) lädt 0($s0) in $t1 also $t1 = 0($s0)

Wahrscheinlich ist das nicht das gleiche, aber wo ist der Unterschied?
_Headsh0t_ is offline  
Old 12/30/2015, 13:55   #2


 
Jeoni's Avatar
 
elite*gold: 966
Join Date: Apr 2010
Posts: 1,105
Received Thanks: 681
Über lw und sw finden Speicherzugriffe statt.
lw $t1, 0($s0) Lädt das Wort, welches an der Adresse $s0 steht in das Register $t1. C-Pseudocode wäre also:
Code:
t1 = *s0;
// oder
t1 = s0[0];
sw $s0, 0($t1) speichert hingegen den Inhalt des Registers $s0 an die Adresse $t1. C-Pseudocode:
Code:
*t1 = s0;
// oder
t1[0] = s0;
Mit freundlichen Grüßen
Jeoni

P.S.: Thema gehört eher in den General Coding Bereich, weil's hier vorrangig um MIPS Assembler geht. Hab um's Verschieben gebeten.
Jeoni is offline  
Thanks
1 User
Old 12/30/2015, 14:04   #3


 
_Headsh0t_'s Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 13,882
Received Thanks: 9,861
Ich habe eine simple Addition und die Summe davon schreibe(bzw lade) ich mit load in ein Register. Nun will mein Programm mit der Summe aber weiterarbeiten, d.h. ich brauche die Summe in meinem Speicher. Also speicher(store) ich den Wert in einer Adresse. Richtig?
_Headsh0t_ is offline  
Old 12/30/2015, 14:13   #4


 
Jeoni's Avatar
 
elite*gold: 966
Join Date: Apr 2010
Posts: 1,105
Received Thanks: 681
Das Ausführen einer Addition, wobei die Summanden im Speicher stehen und das Ergebnis auch wieder im Speicher stehen soll, liefe so ab:
1.) Summanden mit lw in Register laden.
2.) Register addieren (Befehl: add).
3.) Registerinhalt (also Summe) mit sw in den Speicher schreiben.
Wenn du die Summe schon im Speicher hast und die nur noch laden musst (mit lw), damit du dann damit weiterarbeiten kannst, kann man kaum noch von einer Addition sprechen.
lw -> Wert vom Speicher in ein Register laden, um damit arbeiten zu können.
sw -> Wert vom Register in den Speicher schreiben.

Mit freundlichen Grüßen
Jeoni
Jeoni is offline  
Thanks
1 User
Old 12/30/2015, 14:15   #5


 
_Headsh0t_'s Avatar
 
elite*gold: 0
Join Date: Nov 2009
Posts: 13,882
Received Thanks: 9,861
Supi, gecheckt. Danke
_Headsh0t_ is offline  
Old 12/31/2015, 11:18   #6
♥ Yuuki Asuna ♥



 
DarkOPM's Avatar
 
elite*gold: 45
The Black Market: 140/0/0
Join Date: Jun 2005
Posts: 54,878
Received Thanks: 8,573
Arrow Hardware Discussions / Questions -> General Coding

#moved…
DarkOPM is offline  
Reply


Similar Threads Similar Threads
[mips] : Wo ist der Wurm?
11/24/2014 - General Coding - 1 Replies
### Programmsegment: Matrix-Vektor-Multiplikation ### # Verwendung der Register: # # $s0: n # $s1: counter_i # $s2: counter_k # $s5: index_A # $s6: index_x # $s7: index_b
[MIPS] Wie realisier ich das?
11/17/2014 - General Coding - 4 Replies
Hallo Leute, hatte gehofft, mir könnte hier jemand weiterhelfen.. Würde in MIPS gerne das folgende realisieren: a und b sind User eingaben, diese zwei abzurufen und in t0 und t1 zu speichern bereitet mir das größte Problem, den Rest würde ich evtl hinbekommen denken ich.... get a; get b; t0 = a; t1=b; t2= betrag von b; t3= b / t2;
[MIPS] Kann wer helfen?
11/08/2014 - General Coding - 4 Replies
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...



All times are GMT +1. The time now is 17:02.


Powered by vBulletin®
Copyright ©2000 - 2025, 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 ©2025 elitepvpers All Rights Reserved.