fb18.de
/ Diplom Informatik
/ Unterbereich Grundstudium
/ Technische Informatik
aktuelles T3 Blatt
Moin,
habe das Blatt gerade nicht zur Hand, koennte jemand nochmal den Link auf dem Aufgabenblatt posten? Danke.
also ich wueste keine URL, es sei denn irgendwer macht sich hier die Muehe das immer zu scannen.
Aber ich muss sagen, dass ist schon wieder so beschissen gestellt und unerklaert, dass es eh keinen Sinn hat, dass zu bearbeitet.
Oder sind andere Uebis schlauer und vorallem netter als unserer und geben vielleicht Tipps, bzw. erzaehlen was sinvolles?
also ich wueste keine URL, es sei denn irgendwer macht sich hier die Muehe das immer zu scannen.
Nicht den Link ZU dem Aufgabenblatt, sondern den Link AUF dem Aufgabenblatt.
also ich wueste keine URL, es sei denn irgendwer macht sich hier die Muehe das immer zu scannen.
Aber ich muss sagen, dass ist schon wieder so beschissen gestellt und unerklaert, dass es eh keinen Sinn hat, dass zu bearbeitet.
Oder sind andere Uebis schlauer und vorallem netter als unserer und geben vielleicht Tipps, bzw. erzaehlen was sinvolles?
Ich will ja gar nicht ausschließen, dass die Aufgabenstellung in den Übungsgruppen nicht hinreichend erklärt wurde, aber dafür befinden sich in ihr weniger Rechtschreib- und Grammatikfehler als in deiner Kritik dazu, daher solltest du vorsichtig sein, sie als "beschissen gestellt" zu bezeichnen [img]
http://www.fb18.de/gfx/23.gif[/img]
Ich bin mir sicher, dass die Übungsgruppenleiter Fragen zu den Aufgaben gerne beantworten,
wenn man sie fragt (!)
Raeusper…
hier lage: /usr/include/sys/trap.h
und nu, tipps! (bitte)
Ich will ja gar nicht ausschließen, dass die Aufgabenstellung in den Übungsgruppen nicht hinreichend erklärt wurde, aber dafür befinden sich in ihr weniger Rechtschreib- und Grammatikfehler als in deiner Kritik dazu, daher solltest du vorsichtig sein, sie als "beschissen gestellt" zu bezeichnen [img]http://www.fb18.de/gfx/23.gif[/img]
Ich bin mir sicher, dass die Übungsgruppenleiter Fragen zu den Aufgaben gerne beantworten, wenn man sie fragt (!)
Oh, ich dachte ein erwachsener Mensch waere dazu in der Lage zwischen Syntax und Semantik zu unterscheiden und die Semantik in meinem Text weisst jawohl eindeutig darauf hin, dass ich nicht die Syntax, sondern die Semantik in der Aufgabenstellung meinte, oder? Mal ganz von meiner Syntax abgesehen!
Ausserdem dachte ich ist dieses Forum dazu da, sich auszutauschen und nicht zu versuchen, sich daran aufzugeilen, andere Leute anzukacken, was ich dir hiermit unterstelle.
Mit freundlichen Gruessen
Julia
hier lage: /usr/include/sys/trap.h
und nu, tipps! (bitte)
Ich denke, es ist die Softwaretrap 0x20 gemeint
oh, ich hatte gedacht, sie meinen den 22ger.
nun ja, viel erfolg noch.
oh, ich hatte gedacht, sie meinen den 22ger.
nun ja, viel erfolg noch.
Hm, ich glaube Du hast Recht! Danke.
Halloechen…
So, habe es jetzt hinbekommen. Das groesste Problem war eigentlich rauszufinden, in welchem Register die Kopie von dem PSR angelegt wird, wenn man die Trap 0x22 ausloest. Da ich nach intensivem Suchen im Internet nix darueber gefunden hatte (unglaublich…), habe ich einfach ein paar versucht und hatte gleich Glueck - es ist das Register %o0.
Im Grunde genommen [tm] besteht der eigentliche Code zum Auslesen des PSR dann nur noch aus 3 Zeilen: die Trap aufrufen, Ergebnis nach rechts shiften und uninteressante Bits ausmaskieren. Dann sollte man das ganze natuerlich noch mit einigen Testfaellen ausprobieren, ich habe beispielsweise drei ICC-Zustaende provoziert: Z, VC und NC.
Gruss, Fred
Oh, ich dachte ein erwachsener Mensch waere dazu in der Lage zwischen Syntax und Semantik zu unterscheiden und die Semantik in meinem Text weisst jawohl eindeutig darauf hin, dass ich nicht die Syntax, sondern die Semantik in der Aufgabenstellung meinte, oder? Mal ganz von meiner Syntax abgesehen!
Ausserdem dachte ich ist dieses Forum dazu da, sich auszutauschen und nicht zu versuchen, sich daran aufzugeilen, andere Leute anzukacken, was ich dir hiermit unterstelle.
Mit freundlichen Gruessen
Julia
Julia, was ist denn mit dir los? Schlechte Laune? Ich denke nicht, das er (oder sie) das so krass gemeint hat, wie du es aufgefasst hast…. ganz easy going [img]
http://www.fb18.de/gfx/15.gif[/img].
Und btw.: Wer ist hier erwachsen?? [img]
http://www.fb18.de/gfx/10.gif[/img] Du bist es doch auch nicht Julia [img]
http://www.fb18.de/gfx/15.gif[/img]
Nun gut, ich hatte schlechte Laune, muß ich ja einräumen.
Aber mit erwachsen meinte ich ja auch nicht mich [img]
http://www.fb18.de/gfx/24.gif[/img].
Mit freundlichen Gruessen
Julia
DIE Julia? Also die mit dem Nabel? [img]
http://www.fb18.de/gfx/25.gif[/img]
Wie? 'N Nabel hat die auch noch? So langsam bekomme ich Angst. %)
Ich bin mir sicher, dass die Übungsgruppenleiter Fragen zu den Aufgaben gerne beantworten, wenn man sie fragt (!)
Ziemlich realitaetsfremd. Wenn man nicht mal weiss, wovon das Aufgabenblatt handelt, wenn man es schon vor sich liegen und mehrmals gelesen hat, kann man nun mal keine konkreten Fragen stellen. Und wer will sich schon als voelligen Versager outen?
Ich bin mir sicher, dass die Übungsgruppenleiter Fragen zu den Aufgaben gerne beantworten, wenn man sie fragt (!)
Ziemlich realitaetsfremd. Wenn man nicht mal weiss, wovon das Aufgabenblatt handelt, wenn man es schon vor sich liegen und mehrmals gelesen hat, kann man nun mal keine konkreten Fragen stellen. Und wer will sich schon als voelligen Versager outen?
Wie will man dann in der Uebungsgruppe was lernen?
Aber zum Glueck gibts ja das UniMatiX [img]
http://www.fb18.de/gfx/6.gif[/img]
is nu alles geklärt?
das arme übungsblatt will ja nur von einem, dass man
ta 0x22 (oder tr 0x22, oder trap 0x22?, oder sonstwie ähnlich)
aufruft,
dann hat man das ganze psr irgendwo, findet raus wo, findet die interessanten bits und gibt diese aus
also unser übungsgruppenleiter hat die ganze stunde und die letzte stunde auch noch über traps philosopiert,
wie nun der genaue befehl heisst, hat er dabei nicht rübergebracht, wie man sieht ;), aber dafür ist ja das forum ;)
also unser übungsgruppenleiter hat die ganze stunde und die letzte stunde auch noch über traps philosopiert,
wie nun der genaue befehl heisst, hat er dabei nicht rübergebracht, wie man sieht ;), aber dafür ist ja das forum ;)
Doch…sag bloß du hast die Folie in den 5 Skeunden in denen sie da war nicht gesehen [img]
http://www.fb18.de/gfx/28.gif[/img]
Mit freundlichen Gruessen
Julia
DIE Julia? Also die mit dem Nabel? [img]http://www.fb18.de/gfx/25.gif[/img]
Mit dem Nabel?? LOL. Die punkige Julia mit dem Mathe-Hirn [img]
http://www.fb18.de/gfx/7.gif[/img]
Wie will man dann in der Uebungsgruppe was lernen?
Richtig :-(
Ich verstehe das nicht. Mit welchem Opcode soll man denn nun den/die/das Trap aufrufen? Ich habe in dem Heftchen gelesen und im Internet gesucht und bin jetzt so schlau wie vorher.
Wenn man das PSR hat, laeuft es wohl auf Bitauslesen und -interpretieren hinaus, aber wie kommt man an das PSR ran?
Ganz einfach, du brauchst nur TA 0x22 aufrufen, danach befördert das Betriebssystem das PSR in %o0. Anzumerken ist, dass im Gegensatz zu call etc. der delay slot (die Instruktion hinter ta) NICHT ausgeführt wird, man kann also direkt im nächsten Befehl die Verarbeitung anfangen.
PS: TA steht für Trap Always, die Trap-Befehle gibts in genau den Varianten wie die Branch-Befehle, lösen also genauso unter denselben Bedingungen aus.
ta 0x22
ta = trap always
Wenn ich das richtig verstanden habe, dann liegt das Ergebnis dann in %o0
Edit: Verdammt.. der war schneller [img]
http://www.fb18.de/gfx/22.gif[/img]
Danke! Hat geklappt. Mein Programm hat zwar ein Vielfaches von 3 Zeilen, aber es scheint zu funktionieren. :-)
Mein Programm hat zwar ein Vielfaches von 3 Zeilen, aber es scheint zu funktionieren. :-)
Poste es doch mal, dann koennen wir Verbesserungsvorschlaege machen. Wie testest Du das Programm denn (Du schreibst ja, dass es zu funktionieren scheint…)?
Danke, aber das ist nicht noetig; wir wollen es ja nicht kaputtoptimieren, nicht wahr ;-)
Hier ist es trotzdem, vielleicht ist ja einer so schlecht wie ich, hat aber noch weniger Lust drauf:
.global main
string: .asciz "%d\n"
main:
save %sp,-64,%sp
addcc %g0,%g0,%g0
ta 0x22
sll %o0,8,%o0
srl %o0,28,%o1
sethi %hi(string),%o0
or %o0,%lo(string),%o0
call printf
nop
restore
Ich schiebe einfach so, daß die vier relevanten Bits die niedrigsten (und einzigen) sind. Dann gebe ich den Wert aus. Da die Ausgabe dieses Programms "4" ist, scheint es zu funktionieren, denn das "Zero"-Bit ist an dritter Stelle.
Hach, diese gruendliche Art des Testens sollte ich mir patentieren lassen ;-))
Danke, aber das ist nicht noetig; wir wollen es ja nicht kaputtoptimieren, nicht wahr ;-)
Argl, Daten im Codesegment? Und irgendwie fehlt auch ein ret. Ansonsten gehts doch.
In welche Datei sollen die Daten denn dann? So habe ich das aus einem Beispielprogramm aus dem offiziellen Heftchen entnommen.
Und ret?! Ich habe ein return verwendet. Oder ist das ret fuer den/die/das Trap?
In welche Datei sollen die Daten denn dann? So habe ich das aus einem Beispielprogramm aus dem offiziellen Heftchen entnommen.
Schon die gleiche Datei, aber ins Datensegment.
Und ret?! Ich habe ein return verwendet. Oder ist das ret fuer den/die/das Trap?
Ach so moment, das ist ne main-Methode direkt in Assembler… da kenn ich mich nicht aus. Was passiert denn da nach dem restore? Muss Du das Programm nicht irgendwie beenden (ich glaube mit einer Trap)?
Schon die gleiche Datei, aber ins Datensegment.
Ah. … Hä?
Ach so moment, das ist ne main-Methode direkt in Assembler… da kenn ich mich nicht aus. Was passiert denn da nach dem restore? Muss Du das Programm nicht irgendwie beenden (ich glaube mit einer Trap)?
Aehh… es funktioniert jedenfalls :-) Danke.
Schon die gleiche Datei, aber ins Datensegment.
Ah. … Hä?
Eigentlich macht mans so:
.segment ".data"
string: .asciz "%d\n"
.segment ".text"
.global main
main:
...
Weil Daten ins Datensegment gehören und Code ins Textsegment
Ach so moment, das ist ne main-Methode direkt in Assembler… da kenn ich mich nicht aus. Was passiert denn da nach dem restore? Muss Du das Programm nicht irgendwie beenden (ich glaube mit einer Trap)?
Aehh… es funktioniert jedenfalls :-) Danke.
Ansich schließt man Zumindest mit
ret
restore
ab, zum Beenden kann ein Programm auch irgendeine bestimmte trap ausführen, ich kann aber nicht nennen welche [img]
http://www.fb18.de/gfx/28.gif[/img]