Not logged in. · Lost password · Register

swarsron
Avatar
Member since Nov 2002
178 posts
Subject: Klausur 702
Dann will ich mich mal an Steppenwolf dranhaengen:

1a, 1
  b, 2,3,5,6
  c, Da nach Aufuehrung des Interrupthandlers die Programmausfuehrung fortgesetzt wird und diese evtl.  von den Werten in den Registern abhaengt
  d, Rotate left fuegt rechts den Inhalt des Carrys der letzten Rotate-Operation ein, Shift left immer 0

2a, 2+10+4=16 Byte
    -> 2048 Datensaetze
  b, 4+12+4=20 Byte
      2048x20 Byte = 40960 Byte

3a, andl $7, %eax
  b,  (Steppenwolf ist ein Held (; )
        movl $160, %ebx
    do:    cmpl %ebx, $eax
        jl next
        subl %ebx, %eax
    next:    shrl $1, %ebx
        cmp %ebx, $5
        je end
        jmp do
    end:    ret

4a,        movl c, %eax
        cmpl %eax, $97
        jg end
        cmpl %eax, $122
        jl end
        subl $32, %eax
        movl %eax, c
    end:    .....

  b, (1+(1+1+1+1+1)x+2)*1/f=28ns
    x=5

5a, 360 Byte
 b, +120 Byte
 c, int max(int a, int b) {
    return (a>b)?a:b;
    }

6a, zu stressig, wer das sehen will, wir treffen uns Dienstag in der Bib
  b, boolean EQUAL (boolean carry, boolean zero, boolean negative) {
    return (zero==true && carry == false);
    }

    Da sind wir uns nicht sicher, ob man das Carry auch ueberpruefen muss, um evtl. Unterlaeufe zu fangen. Steppenwolf: Hatten wir das jetzt als unmoeglich ausgeschlossen?

       boolean LESSEQUAL (boolean carry, boolean zero, boolean negative) {
    return ((zero==true && carry == false) || negative == true);
    }

  c, Ebenfalls zu stressig, aber vom Prinzip folgendermassen:
    input um drei shiften, dazu um eins geshifteten input addieren

Gruss,
Swarsron
http://happytreefriends.com/watch_episodes/index.html
"Cartoon Violence: Not recommended for small children and big babies"
Steppenwolf
Schläfer
Avatar
Member since Nov 2002
1535 posts
Quote by swarsron:
  b,  (Steppenwolf ist ein Held (; )

ich weiss :]. ich bin sogar so heldenmaessig, dass ich nicht mehr weiss, was wir zu der aufgabe 6 beschlossen hatten, ob man das carry braucht oder nicht. so heldenmaessig, dass ich zu faul bin, nochmal drueber nachzudenken :].
Tuttl
Avatar
Member since Sep 2003
170 posts
siehe S204 Skript!Da hab ich aber jetzt keine Lösung (am PC) parat!
Vielleicht am Montag bei dem Treffen!
This post was edited on 2003-09-28, 09:23 by Tuttl.
Steppenwolf
Schläfer
Avatar
Member since Nov 2002
1535 posts
meinst du die multiplikation mit 10?
da hab ich auch nix im skript, ist mir aber auch so was eingefallen, ist bloss zu kompliziert, um es hier zu posten.
swarsron
Avatar
Member since Nov 2002
178 posts
In reply to post #2
Quote by Steppenwolf:
ich weiss :]. ich bin sogar so heldenmaessig, dass ich nicht mehr weiss, was wir zu der aufgabe 6 beschlossen hatten, ob man das carry braucht oder nicht. so heldenmaessig, dass ich zu faul bin, nochmal drueber nachzudenken :].

Hehe, eigentlich sollte es nicht schaden und falls man es doch braucht lass ich es lieber mal da. Aber wir koennen am Montag ja mal fragen, er muss es ja wissen
http://happytreefriends.com/watch_episodes/index.html
"Cartoon Violence: Not recommended for small children and big babies"
linqs
Avatar
Member since Oct 2002
71 posts
Subject: aufgabe 6b
zu 6b)

cmp a,b  # b - a; (AT&T syntax)

carry flag wird gesetzt <--> ueberlauf bei arithmeitschen funktionen sprich b < a
negative (overflow) flag wird gesetzt <--> b < a wobei a und b vorzeichen zahlen sind
zero flag <--> b - a == 0 (vz egal)

--->
equal(carry,zero,negative) return z == 1;

lessorequal(carry, zero, negative) return ((carry == 1) || (zero == 1) || (negative == 1));

is nur so ne vermutung von mir..

wer ist dagegen???
Tuttl
Avatar
Member since Sep 2003
170 posts
Hey Swarsron!
Glaub du machst öfter mal den Fehler und schaust nicht wie groß die Daten sind beim Programmieren!
z.B.: bei Aufgabe 4a heißt es , man muss ein register char c ...und noch weiteres in Assembler befehle umwandeln.
Dann müsstest du aber immer nur %al nehmen und nicht das ganze
%eax!Oder Täusch ich  mich da? :*)
Tuttl
Avatar
Member since Sep 2003
170 posts
Und zu 6a:
Also ich hab da einfach 4 Halbaddierer nebeneinander geschaltet und beim ersten ein carry-in von 1.
Der Übertrag des letzten Halbaddierers kommt dann zum 5. Ausgang (also ganz links meine ich)!
Hab ein kleines Bild gemalt!Aber net besonders.
Und den HA muss man dann halt noch aus Xor und And-Gatter hinzeichnen!(OTRS1), sonst gibts fast keine Punkte!
The author has attached one file to this post:
Inkrementierer.JPG | Save   12.9 kBytes
Image
This post was edited on 2003-09-30, 15:29 by Tuttl.
swarsron
Avatar
Member since Nov 2002
178 posts
In reply to post #7
Quote by Tuttl:
Glaub du machst öfter mal den Fehler und schaust nicht wie groß die Daten sind beim Programmieren!

Ja, das und signed/unsigned hat mich des oefteren erwischt, aber langsam sollte ich dran denken (;

Danke fuer den Hinweis
http://happytreefriends.com/watch_episodes/index.html
"Cartoon Violence: Not recommended for small children and big babies"
Max M. Risk
Member since Oct 2002
6 posts
Hi,
warum addiert man bei der 4b noch ne 2 ?
(1+(1+1+1+1+1)x+2 ?

Mfg
Thomas
Claudius
Avatar
Member since Oct 2002
956 posts
weil der Vergleich einmal mehr durchlaufen wird als die Schleife
(einmal vorher schon und nach dem letzten mal ja auch)
Im mod(1) sind wir alle gleich....
UQi ⊂ ΦMilch ⊂ ΦNutz ;i ∈ ℕ
Q ∪ Φk = φNutz ∀k ∈ Deck
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:
Go to forum
Datenschutz | Kontakt
Powered by the Unclassified NewsBoard software, 20150713-dev, © 2003-2011 by Yves Goergen