|
You last visited: Today at 17:01
Advertisement
MIPS Unterschied lw und sw
Discussion on MIPS Unterschied lw und sw within the General Coding forum part of the Coders Den category.
12/30/2015, 13:29
|
#1
|
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?
|
|
|
12/30/2015, 13:55
|
#2
|
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.
|
|
|
12/30/2015, 14:04
|
#3
|
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?
|
|
|
12/30/2015, 14:13
|
#4
|
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
|
|
|
12/30/2015, 14:15
|
#5
|
elite*gold: 0
Join Date: Nov 2009
Posts: 13,882
Received Thanks: 9,861
|
Supi, gecheckt. Danke
|
|
|
12/31/2015, 11:18
|
#6
|
♥ Yuuki Asuna ♥
elite*gold: 45
Join Date: Jun 2005
Posts: 54,878
Received Thanks: 8,573
|
Hardware Discussions / Questions -> General Coding
#moved…
|
|
|
 |
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.
|
|