FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Technische Informatik

T3 Aufgabenblatt 4, Parallleladdieren

T3 Aufgabenblatt 4, Parallleladdieren 2004-11-19 19:24
Anonymer User
Ich weiss nicht so genau, wie ich vergleichen soll, ob eine Zahl in einem Register, z.B. in %i0 grösser als ff oder nicht.

Ich habe zum Test mal ein C-Programm mit einer if-Abfrage gemacht, um zu sehen was für ein Assembler Code raus kommt.

Aber egal ob ich "if(n < 5)" oder "if(n == 5)" eingebe, im Assembler Code steht immer "cmp %i0, 5" also vergleiche (compare) Register %i0 mit der Zahl 5.

Aber wie reagiert man auf die unterschieldichen Fälle, ob es jetzt also grösser oder kleiner ist?

Re: T3 Aufgabenblatt 4, Parallleladdieren 2004-11-19 19:26
Anonymer User
und wofür steht "bge …"

Re: T3 Aufgabenblatt 4, Parallleladdieren 2004-11-19 19:38
sChQrf
ble is aber schöner, da spart man sich unterfunktionen [img]http://www.fb18.de/gfx/25.gif[/img]

Re: T3 Aufgabenblatt 4, Parallleladdieren 2004-11-19 19:40
Brokkoli
genau mit dem bge. "Branch on greater or equal"
also ein bedingter sprung. wenn der ergebnis von dem compare davor >= 0 ist spingt der zu dem angegebenen ziel. ansonsten gehts direkt dahinter weiter.
http://docsun.cites.uiuc.edu/sun_docs/C/solaris_9/SUNWdev/SPARC/p19.html#SPARCV9-30990

wir sollten aber bei zettel 4 garkeine sprungbefehle verwenden. es geht alles auch ohne…

Re: T3 Aufgabenblatt 4, Parallleladdieren 2004-11-19 19:46
TriPhoenix
Wenn ihr es mit Sprungbefehlen macht (ohne ist schon ein wenig Knobelei imho [img]http://www.fb18.de/gfx/28.gif[/img]), denkt daran hinter den Sprungbefehl ein nop zu stellen o.ä., weil der Befehl hinter einem Sprung ja noch VOR dem Sprung ausgeführt wird.

Re: T3 Aufgabenblatt 4, Parallleladdieren 2004-11-19 20:32
Anonymer User
Habe mich jetzt etwas mehr damit beschäfitgt, und auch ein paar if-tests gemacht, um es etwas zu durchschauen. Sprünge sind nicht nötig, da es keine else Fälle abzuarbeiten gibt.

Glaube ich habe es jetzt verstanden (glaube ich zumindest).

Kennt jemand vielleicht noch die E-mail adresse um Lösungen abzuschickenb für die Gruppe Mo 14-15 oder 15-16 Uhr?

Re: T3 Aufgabenblatt 4, Parallleladdieren 2004-11-19 22:59
TriPhoenix
Kennt jemand vielleicht noch die E-mail adresse um Lösungen abzuschickenb für die Gruppe Mo 14-15 oder 15-16 Uhr?

Hast du etwa nicht mitgeschrieben? [img]http://www.fb18.de/gfx/15.gif[/img]

t3-1@triphoenix.de für die 14-15er Gruppe
t3-2@triphoenix.de für die 15-16er Gruppe

Wenn du "vorrechnen willst", in der zweiteren ist der Platz dafür schon vergeben, aber ich lese auch so die Abgaben gerne Korrektur.

Re: T3 Aufgabenblatt 4, Parallleladdieren 2004-11-20 05:44
Fred
Sprünge sind nicht nötig, da es keine else Fälle abzuarbeiten gibt.
Soll das heissen, dass jedes if ohne else in Assembler ohne bedingten Sprung realisiert werden kann?

Re: T3 Aufgabenblatt 4, Parallleladdieren 2004-11-20 18:07
georg
Sprünge sind nicht nötig, da es keine else Fälle abzuarbeiten gibt.
Soll das heissen, dass jedes if ohne else in Assembler ohne bedingten Sprung realisiert werden kann?

Kommt mir auch komisch vor. Dann könnte man ja alle if-Konstruktionen ohne bedingte Sprünge realisieren, denn
if(bedingung) { tu_was(); } else { tu_was_anderes(); } lässt sich schreiben als
int temp=bedingung; if(bedingung) { tu_was(); } if(!temp) { tu_was_anderes(); } Und if-Blöcke mit mehreren else-Blöcken gehen dann offenbar auch.

Edit: temp-Variable war Unsinn
Edit2: Nee, war doch wichtig [img]http://www.fb18.de/gfx/23.gif[/img]

Re: T3 Aufgabenblatt 4, Parallleladdieren 2004-11-20 18:42
BoboChaos
war höchstens richtig, ob es wichtig war ist eine ganz andere Frage..

aber bei Punkt "richtig" stimme ich zu


Re: T3 Aufgabenblatt 4, Parallleladdieren 2004-11-20 18:45
UncleOwen
tu_was() könnte bedingung verändern.

Re: T3 Aufgabenblatt 4, Parallleladdieren 2004-11-20 18:51
georg
tu_was() könnte bedingung verändern.

Ja, deswegen hatte ich temp drin.

Edit: Ups, das war ja gar nicht an mich gerichtet…

Re: T3 Aufgabenblatt 4, Parallleladdieren 2004-11-20 21:15
BoboChaos
tu_was() könnte bedingung verändern.

[x] Sinn von temp war klar

hatte das w/richtig auf die gesamte Implementation bezogen