Not logged in. · Lost password · Register

Forum: Bachelor Technische Informatik Rechnerkommunikation RSS
Vorbei oder nicht vorbei ...
Page:  1  2  3  4  5  6  7  next 
Sebbi
Sensenmännlein
Avatar
Member since Nov 2002
377 posts
Subject: Vorbei?
Und, wie ist die Stimmungslage? Die Klausur war sicherlich machbar. Ein wenig wenig Zeit, aber das war uns wohl schon vorher klar.

odd:
popl %eax
andl $1, %eax
ret

....
Repetition is a sign of stupidity. Repetition is a sign of stupidity. Repetition is a sign of stupidity.
This post was edited on 2004-09-29, 11:17 by Sebbi.
snehls
Superfreund aka Der Schwede
Avatar
Member since Oct 2002
750 posts
ja gut war dass es kleine aufgaben waren, da kann man sich irgendwie punkte zusammenschnorren und gut war die letzte aufgabe (falls meine vor Redundanz strotzende Volladdierer Variante durchgeht  :-D ).... aber war schon ganz OK ....

das sind aber 4 Zeilen es soll doch in 3 gehen  :-D  :-D
"I will speculate that today’s single-threaded applications as actually used in the field could actually see a performance boost for most users by going to a dual-core chip, not because the extra core is actually doing anything useful, but because it is running the adware and spyware that infest many users’ systems and are otherwise slowing down the single CPU that user has today."
Silent_Wa
Avatar
Member since Oct 2002
298 posts
In reply to post #1
Quote by Sebbi:
odd:
popl %eax
andl $1, %eax
ret

Und was genau soll das machen? Die Rücksprungadresse mit 1 verunden? ;-)

Ich fände besser:
movl 4(%esp), %eax
andl $1, %eax
ret

Ansonsten, was mir noch im Gedächtnis geblieben ist:
struct foo {
   unsigned char c;
   short int i;
   long n;
}
Little-Endian

mov $L1, %sp
jmp L10
L1: .word L2
L2: ...
L10: ret
Über den Kontrukt wird die Rücksprungadresse so verändert, dass ein Ausführen von Code im Datensegment (Flash-Speicher?) möglich wird (beim ret wird der Code, der als Daten vorliegt ausgeführt). Da das normalerweise (mit nem Call beispielsweise) zu nem Segfault führen würde, wird dieses Konstrukt verwendet.

Das sind mal ein paar Brocken, obs stimmt weiß ich nicht.

Allgemein fand ich die Klausur ganz fair, vor allem der Inkrementierer am Schluss - das waren wirklich geschenkte 10 Punkte, wenn man sich mal die alten Klausuren bzw. Übungen angeschaut hat.  :-D

Ich hoffe, es hat sich niemand an ner Aufgabe festgebissen, wie ich in SP2...  :-(
Yves
Code artist
(Administrator)
Avatar
Member since Nov 2002
3282 posts
Quote by Silent_Wa:
Ich fände besser:
movl 4(%esp), %eax
andl $1, %eax
ret
Ich auch.

struct foo {
   unsigned char c;
   short int i;
   long n;
}
Little-Endian
Hast du dir die 4711 auch mal angeschaut? Das letzte war ein short int. (IIRC, welcher Indian kann ich mich jetzt aber auch nicht mehr erinnern.)

Über den Kontrukt wird die Rücksprungadresse so verändert, dass ein Ausführen von Code im Datensegment (Flash-Speicher?) möglich wird (beim ret wird der Code, der als Daten vorliegt ausgeführt). Da das normalerweise (mit nem Call beispielsweise) zu nem Segfault führen würde, wird dieses Konstrukt verwendet.
Wieso werden da Daten ausgeführt? Wo sind die denn? Und zur BIOS-Zeit gibt's sehr wahrscheinlich noch keinen segfault... Außer du hast ein Multi-Tasking-Fähiges BIOS. :cool:

Allgemein fand ich die Klausur ganz fair, vor allem der Inkrementierer am Schluss - das waren wirklich geschenkte 10 Punkte, wenn man sich mal die alten Klausuren bzw. Übungen angeschaut hat.  :-D
Den hab ich vor seinen Augen von meinem Blatt abgemalt... :-D
Physikalisch gesehen ist ein Quantensprung die kleinstmögliche Zustandsänderung, meist von einem höheren auf ein niedrigeres Niveau.

Komprenu Energiemonitoring-Software | dotforward Webhosting
kabel
Member since Jan 2003
1009 posts
stimmung: eher schlecht, ich idiot hab natürlich nur ganz wenig doku dabei und prompt fragt er den endian mist ab.

die is_big_endian war doch eine nullstellige funktion?
movl $1, %eax
xorw %ah, %ah
ich hoffe des geht so ...  :rolleyes:
Sebbi
Sensenmännlein
Avatar
Member since Nov 2002
377 posts
In reply to post #4
popl macht doch genau das .... oder nicht?

Den Inkrementierer habe auch abgemalt ... :-)

Wieviele Bytes brauch eurer ergänztes Assemblerprogramm? Ich werfe mal spontan die Zahl "30" in den Raum. Ich glaube mittlerweile aber, dass es deutlich mehr sind.

Und was ist die Bedeutung von 0x0fffffff ???

Bei dem Bioscode ist auf jeden Fall klar, dass man da eine Adresse auf den Stack legt die dann durch ret angesprungen wird ... ich würde einfach nur sagen, dass das ein "erweitertes call" ist mit angabe der Adresse wohin zurückgesprungen werden soll ...
Repetition is a sign of stupidity. Repetition is a sign of stupidity. Repetition is a sign of stupidity.
This post was edited on 2004-09-29, 12:05 by Sebbi.
kabel
Member since Jan 2003
1009 posts
sorry, ich hab odd mit is_big_endian verwechselt. :grummel:
Yves
Code artist
(Administrator)
Avatar
Member since Nov 2002
3282 posts
In reply to post #6
Quote by Sebbi:
Wieviele Bytes brauch eurer ergänztes Assemblerprogramm? Ich werfe mal spontan die Zahl "30" in den Raum. Ich glaube mittlerweile aber, dass es deutlich mehr sind.
32, bin mir aber nicht sicher, da ich die genaue Kodierung nicht kenne.

Und was ist die Bedeutung von 0x0fffffff ???
Du meinst sicher 0x7FFFFFFF, oder? Das ist halt 2^31 - 1. Weiß auch net. Hab's aber falsch hingeschrieben... Wie so viele scheinbar...
Physikalisch gesehen ist ein Quantensprung die kleinstmögliche Zustandsänderung, meist von einem höheren auf ein niedrigeres Niveau.

Komprenu Energiemonitoring-Software | dotforward Webhosting
Max
Member since Oct 2002
1296 posts
geil find ich auch, dass ich nen ausgedruckten 4bit inkrementierer dabeihatte :-D
BLUBB
Julia
Kruemelmonsterine
Avatar
Member since May 2003
387 posts
Ich fand die Klausur recht dumm.
Gut, das Schaltnetz war geschenkt, aber bei der Mehrheit der anderen Fragen hab ich dumm rumgeraten.

Haette ich OTRS4 doch auch vorgezogen... die frueheren Klausuren lagen mir definitiv eher.
Der Pinky, der Pinky und der Brain, Brain, Brain, Brain!
leonidas
Avatar
Member since May 2003
298 posts
In reply to post #9
Es ist zwar jetzt irrelevant, aber
 :finger:  :finger:  :finger:  :finger:  :finger:

das mit dem 0x7ff... würde ich sagen ist die grösste darstellbare positive Zahl (wenn man mit signed ints rechnet).

Bei dieser is_endian Aufgabe würde ich folgendes vorschlagen:

movl $1,%eax
pushl %eax
xorl %eax,%eax
movb 4(%esp),%al
pop %ebx
ret

man beachte das movb. Damit hol ich mir das einzelne Byte an dieser Adresse. wenn man da ein movl mach, dreht einem der Prozessor die bytes ja wieder richig hin, oder?
Das pop ist nur der vollständigkeit halber um den stack aufzuräumen, den wert selbst brauch ich nicht, also ab damit nach ebx
Nothing's real until you feel
Claudius
Avatar
Member since Oct 2002
956 posts
In reply to post #3
Quote by Silent_Wa:
Ansonsten, was mir noch im Gedächtnis geblieben ist:
struct foo {
   unsigned char c;
   short int i;
   long n;
}

was ist denn ein unsigned char? du meinst sicher 'nen short, gell?

@sebbi:
der letzte Wert auf dem Stack nach einem Programmaufruf ist die Rücksprungadresse, die du dir in deinem Bsp durch das popl geholt hast - und beim ret springt er dann an die Adresse die den Wert der zu überprüfenden Zahl hat :o)
Im mod(1) sind wir alle gleich....
UQi ⊂ ΦMilch ⊂ ΦNutz ;i ∈ ℕ
Q ∪ Φk = φNutz ∀k ∈ Deck
Yves
Code artist
(Administrator)
Avatar
Member since Nov 2002
3282 posts
Quote by Claudius:
was ist denn ein unsigned char? du meinst sicher 'nen short, gell?
char: -128 ... 127
uchar: 0 ... 255
short: -32768 ... 32767
ushort: 0 ... 65535
Physikalisch gesehen ist ein Quantensprung die kleinstmögliche Zustandsänderung, meist von einem höheren auf ein niedrigeres Niveau.

Komprenu Energiemonitoring-Software | dotforward Webhosting
Claudius
Avatar
Member since Oct 2002
956 posts
aba aba is ein char nich so für Buchstabseln gedacht oder so?
was solln denn da die negativen Werte?!? *verwirrt_sei*
Im mod(1) sind wir alle gleich....
UQi ⊂ ΦMilch ⊂ ΦNutz ;i ∈ ℕ
Q ∪ Φk = φNutz ∀k ∈ Deck
Yves
Code artist
(Administrator)
Avatar
Member since Nov 2002
3282 posts
Hattest du kein SysProg1?
Physikalisch gesehen ist ein Quantensprung die kleinstmögliche Zustandsänderung, meist von einem höheren auf ein niedrigeres Niveau.

Komprenu Energiemonitoring-Software | dotforward Webhosting
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Page:  1  2  3  4  5  6  7  next 
Go to forum
Datenschutz | Kontakt
Powered by the Unclassified NewsBoard software, 20150713-dev, © 2003-2011 by Yves Goergen