FB18 - Das Forum für Informatik

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

T3 Blatt 3

T3 Blatt 3 2003-11-09 13:29
Fred
Hi,

es wäre nett, wenn Ihr alle Eure Fragen in diesem Thread postet, und nicht zu jeder Unteraufgabe ein neues Topic aufmacht. Zum letzten Aufgabenzettel gab es 5 unterschiedliche Threads, das ist recht unübersichtlich [img]http://unimatix.sternenvolk.de/gfx/22.gif[/img]

Danke

Re: T3 Blatt 3 2003-11-09 15:36
Marrow
Aufgabe 3.2:
Leider kann man im Rechenzentrum die Aufgabe nicht komplett bearbeiten, weil das Kommando objdump unbekannt ist.

rzdspc34$ objdump -d template.o
bash: objdump: command not found

Und nun? Wenn die Aufgabe schon darin besteht, eine Datei runterzuladen und ein paar Kommandos in der Konsole einzugeben, dann sollte das auch funktionieren. Punktabzug waere hier nicht sehr nett. [img]http://unimatix.sternenvolk.de/gfx/26.gif[/img]

Re: T3 Blatt 3 2003-11-09 16:39
UncleOwen
Versuchs mit /opt/sfw/bin/gobjdump

Aber irgendwie vermute ich mal, dass die Aufgabe auf 'nem x86 geloest werden soll?

Re: T3 Blatt 3 2003-11-09 17:04
TriPhoenix
Und nun? Wenn die Aufgabe schon darin besteht, eine Datei runterzuladen und ein paar Kommandos in der Konsole einzugeben, dann sollte das auch funktionieren. Punktabzug waere hier nicht sehr nett. [img]http://unimatix.sternenvolk.de/gfx/26.gif[/img]

Wie Owen sagte, Sinn der Aufgabe ist es, den x86-Code dahinter zu sehen, also hilft die Sparc inner Uni nicht viel [img]http://unimatix.sternenvolk.de/gfx/28.gif[/img]

Re: T3 Blatt 3 2003-11-10 01:27
Anonymer User
Das ist schon alles ein wenig merkwürdig…
Sollen wir die Aufgaben jetzt womit machen, was nicht im RZ so recht funzen will…
Probier ichs mal zu Hause mit dem cygwin Teil, noch habe ich Hoffnung…noch… (meine gute Laune ist jetzt schon erschöpft)

Re: T3 Blatt 3 2003-11-10 01:43
paddyxtra
Ich habs garnicht erst im Rechenzenrum versucht, nachdem ich das hier gelesen habe. Hab mir vorhin die Cygwin-Shell runtegeladen, morgen mal schauen wie das funktioniert, der erste Start hat mich erschaudern lassen…damit soll ich arbeiten??? Naja, muss wohl und wenn ich dann so auf die eine Folie von Veranstaltung 2 blicke: "niemand erwartet, dass Sie sich Details merken, x86-Assemblerprogrammierung ist grausam"

Re: T3 Blatt 3 2003-11-10 12:17
TriPhoenix
Sollen wir die Aufgaben jetzt womit machen, was nicht im RZ so recht funzen will…
Funzen tuts doch im RZ, nur dummerweise kommt da kein x86-Assembler raus, sondern Sparc-Assembler und das hilft fuer die Aufgabenblaetter nicht [img]http://unimatix.sternenvolk.de/gfx/28.gif[/img]

Re: T3 Blatt 3 2003-11-10 12:18
TriPhoenix
Hab mir vorhin die Cygwin-Shell runtegeladen, morgen mal schauen wie das funktioniert, der erste Start hat mich erschaudern lassen…damit soll ich arbeiten???
Also die unix-Kommandozeile hier inner Uni sieht aber auch nicht anders aus.

Naja, muss wohl und wenn ich dann so auf die eine Folie von Veranstaltung 2 blicke: "niemand erwartet, dass Sie sich Details merken, x86-Assemblerprogrammierung ist grausam"
Das allerdings ist merkwuerdig, wenn man bedenkt, dass zwei x86-Aufgabenzettel drankommen [img]http://unimatix.sternenvolk.de/gfx/22.gif[/img]

Re: T3 Blatt 3 2003-11-10 14:36
Anonymer User
Hi,

ich hab eine Frage zu Aufgabe 3.4:

Muessen wir eventuelle Zustandscodes beruecksichtigen, oder sollen wir wirklich "nur" das Zweierkomplement der in %eax stehenden Zahl nach %ebx scheiben?

Danke!

Re: T3 Blatt 3 2003-11-10 14:37
Marrow
Moment mal. Grundsaetzlich darf fuer das Studium nicht mal der Besitz eines Rechners vorausgesetzt werden. Also MUSS man die Aufgabe im RZ loesen koennen. Ausserdem hat nicht jeder eine Flatrate, also ist es schon uebertrieben, fuer eine Aufgabe extra ein Programm runterladen zu muessen.

Und an Uncle Owen:Mit dem Befehl gobjdump funktioniert es an der Uni. Danke

Re: T3 Blatt 3 2003-11-10 15:29
Fred
Also MUSS man die Aufgabe im RZ loesen koennen.
Tja, und letztes Jahr gabs Beschwerden, dass man die Aufgaben NUR im RZ lösen konnte (ausser man hatte ne SPARC zu Hause)…

Re: T3 Blatt 3 2003-11-10 15:31
Fred
ich hab eine Frage zu Aufgabe 3.4:

Muessen wir eventuelle Zustandscodes beruecksichtigen
Was meinst Du damit? Du musst natürlich irgendwie überprüfen, ob die Zahl in %eax positiv oder negativ ist…

oder sollen wir wirklich "nur" das Zweierkomplement der in %eax stehenden Zahl nach %ebx scheiben?
Du sollst den BETRAG von %eax nach %ebx schreiben. Ein movl %eax, %ebx reicht da also nicht aus, falls Du das damit meintest. Wenn %eax = 7 ist soll in %ebx = 7 stehen, und wenn %eax = -7 ist soll in %ebx ebenfalls 7 stehen und NICHT -7. Klar?

Re: T3 Blatt 3 2003-11-10 15:37
Deepthought
Gut, also nochmal zum besseren Verstaendnis… die Zahl in %eax ist im Zweierkomplement gespeichert, falls sie positiv ist einfach nach %ebx kopieren, falls negativ den Betrag kopieren. Hab ich das richtig verstanden?

Re: T3 Blatt 3 2003-11-10 15:42
Fred
Gut, also nochmal zum besseren Verstaendnis… die Zahl in %eax ist im Zweierkomplement gespeichert, falls sie positiv ist einfach nach %ebx kopieren, falls negativ den Betrag kopieren. Hab ich das richtig verstanden?
So funktioniert es (obwohl Deine Formulierung unglücklich ist - der Betrag wird schliesslich in beiden Fällen kopiert).

EDIT: die Zahlen 0x00000000-0x7FFFFFFF kannst Du einfach übernehmen, bei den Zahlen 0x80000000-0xFFFFFFFF musst Du noch das Vorzeichen umdrehen. (Ach ja das heisst natürlich nicht, dass Du nur ein Bit umdrehen musst.) Jetzt sollte es verständlich sein.

EDIT: ich habe eben selbst mal ein bischen programmiert, also die einfachste Variante ist natürlich die mit einem bedingten Sprung (4 Befehle), es geht aber auch ohne, dann braucht man 6 Befehle. Aber vielleicht findet Ihr ja auch noch kompaktere Lösungen.

Re: T3 Blatt 3 2003-11-10 17:13
TriPhoenix
Moment mal. Grundsaetzlich darf fuer das Studium nicht mal der Besitz eines Rechners vorausgesetzt werden. Also MUSS man die Aufgabe im RZ loesen koennen. Ausserdem hat nicht jeder eine Flatrate, also ist es schon uebertrieben, fuer eine Aufgabe extra ein Programm runterladen zu muessen.

Cygwin könnte eventuell auf der Starthilfe-CD drauf sein. Alle weiteren Beschwerden bitte an TAMS [img]http://unimatix.sternenvolk.de/gfx/28.gif[/img] Sparc-Code hilft jedenfalls nicht wirklich. Vielelicht haben ja sogar die paar Windows-Kisten die wir haben nen gcc drauf, wer weiß…

Re: T3 Blatt 3 2003-11-10 17:25
Silence
Ich hab mit jetzt diese programm da von www.cygwin.com runtergeladen….

es installiert und dann mal gestartet..und also ich dann

gcc -O2 -S templete.c eingegeben hat, bekamm ich die anwort:

bash: gcc: command not found

was hab ich falschgemacht?

Re: T3 Blatt 3 2003-11-10 17:33
TriPhoenix
gcc -O2 -S templete.c eingegeben hat, bekamm ich die anwort:

bash: gcc: command not found

was hab ich falschgemacht?

Ich nehme an du musst den Windows-PATH noch ändern, der steht unter Windows 2000/XP in den Systemeinstellungen (Eigenschaften von Arbeitsplatz) irgendwo drin, unter Win 95/98/ME in der autoexec.bat. Wenn du nach c:\cygwin installiert hast muss da dazu: c:\cygwin\bin und c:\cygwin\usr\bin. Alternativ kannst du auch vermutlich mit /usr/bin/gcc oder /bin/gcc (kp wies konfiguriert war) arbeiten, denke ich.
Als Alternative empfehle ich noch www.mingw.org das ist glaube ich noch etwas einfacher zu installieren. Oder gelich ein Linux [img]http://unimatix.sternenvolk.de/gfx/15.gif[/img]

Re: T3 Blatt 3 2003-11-10 18:18
Dosenwein
Ich stecke gerade bei Aufgabe 3.1.2 fest.
Was macht der Befehl xorl eigentlich genau. Ich habe nichts dazu gefunden.

Vergleicht der einfach zwei Register bitweise mit XOR, und speichert das in einem Register?

Also aus 0x11110000 und 0x10101010 mach einfach 0x01011010?

Grüsse Dosenwein

Re: T3 Blatt 3 2003-11-10 18:41
TriPhoenix
Vergleicht der einfach zwei Register bitweise mit XOR, und speichert das in einem Register?

Also aus 0x11110000 und 0x10101010 mach einfach 0x01011010?

ganz genau :)

Re: T3 Blatt 3 2003-11-10 18:42
Marrow
hm, da kam mir jemand mit der antwort zuvor [img]http://unimatix.sternenvolk.de/gfx/10.gif[/img]

Re: T3 Blatt 3 2003-11-10 19:26
Dosenwein
Ich hab mit jetzt diese programm da von www.cygwin.com runtergeladen….

es installiert und dann mal gestartet..und also ich dann

gcc -O2 -S templete.c eingegeben hat, bekamm ich die anwort:

bash: gcc: command not found

was hab ich falschgemacht?

Genau das Problem habe ich auch. Das mit dem Windows-Path hat nicht gefunzt.

Das ist glaube ich auch kein Wunder, da bei dem ganzen Cygwin-Packet überhaupt nichts ähnliches wie gcc dabei war (Wenn ich meiner Windows Suchfunktion trauen darf)…

Haben noch andere dieses Problem? Wenn ja, warum steht cygwin dann auf dem Aufgabenblatt?? Oder habe ich da was falsches runtergeladen (geht eigentlich gar nicht, weil sooooooo ein großer Download-Button)?

Gruss Dosenwein

Re: T3 Blatt 3 2003-11-10 19:28
TriPhoenix
Genau das Problem habe ich auch. Das mit dem Windows-Path hat nicht gefunzt.

Das ist glaube ich auch kein Wunder, da bei dem ganzen Cygwin-Packet überhaupt nichts ähnliches wie gcc dabei war (Wenn ich meiner Windows Suchfunktion trauen darf)…
Dann hast du im Setup einfach den gcc nicht angeklickt ;) bintuils wären auhc ganz nützlich. Oder halt mal mingw probieren…


Haben noch andere dieses Problem? Wenn ja, warum steht cygwin dann auf dem Aufgabenblatt?? Oder habe ich da was falsches runtergeladen (geht eigentlich gar nicht, weil sooooooo ein großer Download-Button)?
Nope, ist ansich schon korrekt.

Re: T3 Blatt 3 2003-11-10 19:29
Fred
Was macht der Befehl xorl eigentlich genau. Ich habe nichts dazu gefunden.
XOR performs a bitwise XOR operation between its two operands (i.e. each bit of the result is 1 if and only if exactly one of the corresponding bits of the two inputs was 1), and stores the result in the destination (first) operand.

http://courses.ece.uiuc.edu/ece291/books/labmanual/inst-ref-general.html

Aber Achtung, das ist INTEL Syntax, siehe dazu den anderen Thread von mir (AT&T vs. INTEL).

Vergleicht der einfach zwei Register bitweise mit XOR, und speichert das in einem Register?
Im Prinzip schon, allerdings muss nur einer der beiden Operanden ein Register sein, der andere kann auch im Speicher liegen.

Re: T3 Blatt 3 2003-11-10 20:46
Dosenwein
Bezüglich Aufgabe 3.2…

Kann man die Ausgabe von objdump -d irgendwie in einem File abspeichern?

In dieser Konsole von cygwin funktioniert nämlich kein Copy-Paste, sodas ich alles abtippen müsste um das einzuschicken… [img]http://unimatix.sternenvolk.de/gfx/21.gif[/img]


Re: T3 Blatt 3 2003-11-10 20:58
M
Shell redirection in eine Datei ?
Also sowas in der Art
objdump -d template.o > logfile.txtSollte in jeder Konsole gehen (auch cmd.exe)

Re: T3 Blatt 3 2003-11-10 21:02
Dosenwein
[img]http://unimatix.sternenvolk.de/gfx/15.gif[/img] !
Danke, hat funktioniert, und ich bin endlich mit allem fertig…

Gruss Dosenwein

Re: T3 Blatt 3 2003-11-10 23:02
LAMER
ich habe alles runtergeladen.
gcc-ada
gcc-core
gcc-g++
gcc-g77
gcc-gpc
gcc-java
gcc-obj
gcc-testsuite
gcc-3.3.1-tar.bz2
was muss ich den installieren???

Re: T3 Blatt 3 2003-11-10 23:26
UncleOwen
Da haste Dir doppelte Arbeit gemacht, das letzte Paket enthaelt die ganzen anderen (eventuell bis auf -testsuite, aber die braucht man ja auch nicht). gcc braucht aber auf jedenfall noch binutils.

Aber warum willste das von Hand installieren? Linux-User haben das eh schon dabei (oder installieren es ueber apt/rpm/yast/whatever nach), Windows-User fahren mit cygwin besser (und koennen mit den sourcen, die Du runtergeladen hast, eh nichts anfangen).

Re: T3 Blatt 3 2003-11-10 23:29
TriPhoenix
ich habe alles runtergeladen.
gcc-ada
gcc-core
gcc-g++
gcc-g77
gcc-gpc
gcc-java
gcc-obj
gcc-testsuite
gcc-3.3.1-tar.bz2
was muss ich den installieren???

Wie runtergeladen? Das cygwin-system installeirt das slebst, ansonsten brauchst du einen funktionierenden Compiler um das zu kompilieren [img]http://unimatix.sternenvolk.de/gfx/28.gif[/img]

Re: T3 Blatt 3 2003-11-10 23:32
LAMER
kann man mir jetzt sagen was ich installieren soll? ich habe alles runtergeladen damit ich nicht vom netz installieren muss.

Re: T3 Blatt 3 2003-11-10 23:33
UncleOwen
Vielleicht sagt Du erstmal, obs sich um Windows (welches?) oder Linux (welches?) handelt?

Re: T3 Blatt 3 2003-11-10 23:34
TriPhoenix
kann man mir jetzt sagen was ich installieren soll? ich habe alles runtergeladen damit ich nicht vom netz installieren muss.

www.cygwin.com -> downloaden und bei der installation binutils und gcc auswählen, oder www.mingw.com da gibst auch nen download. Stand schon ein paar mal hier [img]http://unimatix.sternenvolk.de/gfx/22.gif[/img]

Re: T3 Blatt 3 2003-11-10 23:34
LAMER
binutils habe ich auch runtergeladen, insgesamt 300 MB

Re: T3 Blatt 3 2003-11-10 23:35
LAMER
natürlich WINDOWS :)))

Re: T3 Blatt 3 2003-11-10 23:36
LAMER
soll ich gcc oder gcc-mingw installieren?

Re: T3 Blatt 3 2003-11-10 23:36
UncleOwen
natürlich WINDOWS :)))

Was ist daran natuerlich? Auf jedenfall kannst Du dann alles, was Du bis jetzt runtergeladen hast, wegschmeissen. www.cygwin.org hilft Dir.

Re: T3 Blatt 3 2003-11-10 23:43
UncleOwen
soll ich gcc oder gcc-mingw installieren?

Huch, cygwin hat beide? Dann ersteres, wuerd ich mal tippen… funktionieren tun wohl beide.

Re: T3 Blatt 3 2003-11-10 23:55
LAMER
also ich habe es entpack aber funktionieren tut es nicht, kann keine cygwin.dll finden oder zeigt das es nicht win32 ist

Re: T3 Blatt 3 2003-11-10 23:57
TriPhoenix
also ich habe es entpack aber funktionieren tut es nicht, kann keine cygwin.dll finden oder zeigt das es nicht win32 ist

Du sollst es ja auch net entpacken sondern von www.cygwin.com das setup runterladen und einfach dort die pakete auswäheln und installieren [img]http://unimatix.sternenvolk.de/gfx/22.gif[/img]

Re: T3 Blatt 3 2003-11-10 23:59
LAMER
ja welche denn,es sin 100 packete da!!!

Re: T3 Blatt 3 2003-11-11 00:00
LAMER
soll ich als default texfile typ DOs oder unix nehmen?

Re: T3 Blatt 3 2003-11-11 00:01
TriPhoenix
ja welche denn,es sin 100 packete da!!!

*sigh* einfach gcc und binutils dazumarkieren. Das mitm Textfile würde ich so lassen wies dastand (so hats bei mir immer ganz gut geklappt).

Re: T3 Blatt 3 2003-11-11 00:09
LAMER
in dem auswahl sehe ich kein gcc und binutils

Re: T3 Blatt 3 2003-11-11 00:11
LAMER
alle packages stehen auf default. was soll ich dazu markieren und wo.
ach kann mir doch jemand sagen ich komm sonnst überhaupt nicht weiter

Re: T3 Blatt 3 2003-11-11 00:13
TriPhoenix
alle packages stehen auf default. was soll ich dazu markieren und wo.
ach kann mir doch jemand sagen ich komm sonnst überhaupt nicht weiter

Hab halt ekin Cygwin hier sondern ein schönes Linux :) Irgendwo konnte man die Pakete nach namen sortieren lassen, ansonsten sollten die unter delevoping oder so sein. Sonst versuch doch mal www.mingw.org das paket ist wesentlich simpler im setup (wann wohl mal wer auf mich hört [img]http://unimatix.sternenvolk.de/gfx/22.gif[/img])

Re: T3 Blatt 3 2003-11-11 00:20
LAMER
http://www.mingw.org/download.shtml#hdr2
soll ich hier alles runterladen?

Re: T3 Blatt 3 2003-11-11 00:42
TriPhoenix
http://prdownloads.sf.net/mingw/MinGW-3.1.0-1.exe?download <– das

Re: T3 Blatt 3 2003-11-11 00:50
LAMER
und starten mit UNIX2DOS.EXE ??

Re: T3 Blatt 3 2003-11-11 00:52
TriPhoenix
und starten mit UNIX2DOS.EXE ??

Wen starten? Sofern der gcc ncoh nicht in deinem Windows-PATH eingetragen ist, da eintragen und dann eine ganz normale Kommandozeile aufmachen und die besagten Befehle eingeben. Die .C-Datei muss natürlich im selben Verzeichnis sein, in dem du die Befehle ausführst.

Re: T3 Blatt 3 2003-11-11 00:56
LAMER
ich habe installier die datei die du mir gegeben hast, gcc ist irgendwie gar nicht dabei

Re: T3 Blatt 3 2003-11-11 01:05
LAMER
und wenn ich gcc -O2 -S template.c eingebe sagt er das gcc nicht gefunden wird

Re: T3 Blatt 3 2003-11-11 01:07
TriPhoenix
ich habe installier die datei die du mir gegeben hast, gcc ist irgendwie gar nicht dabei

Da bin ich mri ziemlich sicher, dass da der gcc dabei ist :) Dürfte sich wieder in einem Verzeichnis wie bin oder usr/bin verstecken als gcc.exe, da bin ich ganz zuversichtlich [img]http://unimatix.sternenvolk.de/gfx/28.gif[/img]

Re: T3 Blatt 3 2003-11-11 01:08
TriPhoenix
und wenn ich gcc -O2 -S template.c eingebe sagt er das gcc nicht gefunden wird

Dann liegt der gcc noch nicht im Windows-PATH, also das Verzeichnis in dem gcc.exe liegt.

Re: T3 Blatt 3 2003-11-11 01:09
TriPhoenix
Hier gibts auch noch ein Howto:

http://www.nickles.de/c/s/21-0015-310-2.htm

Re: T3 Blatt 3 2003-11-11 01:10
LAMER
tja da kommt ein schwarzes fenster und verschwindet wieder

Re: T3 Blatt 3 2003-11-11 01:17
TriPhoenix
tja da kommt ein schwarzes fenster und verschwindet wieder

Deswegen sollst du eine Kommandozeile aka Eingabeaufforderung aufmachen und darin wie im Tutorial gesagt die Befehle ausführen…

Re: T3 Blatt 3 2003-11-11 01:24
LAMER
habe gemacht. es schreibt gg.exe no input files

Re: T3 Blatt 3 2003-11-11 01:58
TriPhoenix
habe gemacht. es schreibt gg.exe no input files

Dann hast dus noch nicht richtig aufgerufen wies beschrieben ist, vor alel mmuss die Datei in dem Verzeichnis leigen, in dem du mit der Kommandozeile arbeitest.

Re: T3 Blatt 3 2003-11-11 13:56
XeXano
installieren von mingw hat geklappt, aber leider interessiert er sichanscheinend nicht für kommandozeilenparameter, egal was ich angebe (gcc -O2 -s template.c) ich bekomme keinen assembler raus, sondern a.exe

Re: T3 Blatt 3 2003-11-11 13:58
TriPhoenix
installieren von mingw hat geklappt, aber leider interessiert er sichanscheinend nicht für kommandozeilenparameter, egal was ich angebe (gcc -O2 -s template.c) ich bekomme keinen assembler raus, sondern a.exe

mal mit -S (großes S) versucht? Dem gcc ist das wichtig [img]http://unimatix.sternenvolk.de/gfx/28.gif[/img]

Re: T3 Blatt 3 2003-11-11 15:03
XeXano
ja, grad auch gemerkt… hab mich verlesen.



Äh, warum zum Teufel wird mein Avatar ncihtmehr angezeigt?

Re: T3 Blatt 3 2003-11-11 15:08
UncleOwen
Äh, warum zum Teufel wird mein Avatar ncihtmehr angezeigt?

http://3773.rapidforum.com/topic=102483162041&reverse=1

Re: T3 Blatt 3 2003-11-11 15:10
LAMER
So ich habe jetzt alles hingekriegt.
Mann könnte schon eine Anleitung dafür geben, dank Triphoenix und seinen Links geht das. Aber nicht jeder kann ganzen Tag im Forum sitzen. Und nicht jeder hat Vorkenntnisse,wie man zum Beispiel PATH erstellt.
Alsio weiss nicht wie für andere für mich war es zu wenig was in der Aufgabe steht. Ohne diesen Forum hätte ich es nicht geschaft.

Re: T3 Blatt 3 2003-11-11 15:20
XeXano
Zu Aufgabe 4 nochmal, hat das "Zweierkomplement zu bedeuten, dass wir den Vorzeichenwechsel manuell machen müssen? Eigentlich gibts da ja nen Befehl für… *confused*

Re: T3 Blatt 3 2003-11-11 15:32
TriPhoenix
Zu Aufgabe 4 nochmal, hat das "Zweierkomplement zu bedeuten, dass wir den Vorzeichenwechsel manuell machen müssen? Eigentlich gibts da ja nen Befehl für… *confused*

Gute Frage eigentlich. Aber nirgendwo steht dass ihr irgendwie auf einen bestimmten Teil des x86-Satzes beschränkt seid, von daher denke ich ist das durchaus erlaubt.

Re: T3 Blatt 3 2003-11-11 15:57
LAMER
kann man die Register so vertauschen?
movl (%ecx),%eax
movl (%ebx),%edx
movl (%eax),%ebx
movl (%edx),%ecx

Re: T3 Blatt 3 2003-11-11 16:03
XeXano
Hieß es nicht "Keine weiteren Register außer eax und edx benutzen? :)

Re: T3 Blatt 3 2003-11-11 16:12
LAMER
gib mir bitte ein tip wie ich es sonnst machen kann

Re: T3 Blatt 3 2003-11-11 16:15
UncleOwen
Da ist doch schon ein Tip in der Aufgabenstellung.

Re: T3 Blatt 3 2003-11-11 16:22
LAMER
xorl Src.Dest Dest=Dest^Src
ich finde kein Zusammenhang mit Vertauschen

Re: T3 Blatt 3 2003-11-11 16:35
UncleOwen
Spiel einfach mal ein bisschen mit xor rum, mehr braucht man nicht.

Re: T3 Blatt 3 2003-11-11 16:38
LAMER
ja wie soll ich den damit spielen, aus dem script lese ich das es ,dest gleich Dest hoch Source, bedeutet

Re: T3 Blatt 3 2003-11-11 16:39
LAMER
wieso gibt es den keine Tutorium für T3

Re: T3 Blatt 3 2003-11-11 16:42
UncleOwen
Achso, da liegt das Problem. XOR ist das (bitweise) exclusive Oder. Also ein Bit des Ergebnisses ist genau dann gesetzt, wenn es in GENAU EINEM der beiden Ausgangswerte gesetzt war. Aber das ist doch T1-Stoff? *confused*

Re: T3 Blatt 3 2003-11-11 16:53
XeXano
Ich glaube da liegt auch ein Konfusionsfaktor des Skrpites drin (?), weil das ^, was ja generell als "hoch" steht, hier aus irgendwelchen nicht näher bestimmten gründen das XOR darsterllen soll…

Re: T3 Blatt 3 2003-11-11 17:21
TriPhoenix
Ich glaube da liegt auch ein Konfusionsfaktor des Skrpites drin (?), weil das ^, was ja generell als "hoch" steht, hier aus irgendwelchen nicht näher bestimmten gründen das XOR darsterllen soll…

Weils in den meisten Programmiersprachen so ist [img]http://unimatix.sternenvolk.de/gfx/28.gif[/img]

Re: T3 Blatt 3 2003-11-11 17:31
Silence
Hmm, ich hab das mit den path setzten gemacht bei XP

Danke :)


also der befehl help und exit gehen…. aber gcc kennt das ding immer noch nicht *langsam kriese kriegt*

Re: T3 Blatt 3 2003-11-11 18:20
LAMER
ich weiss was XOR ist
110xor010 ergibt 100
aber was hat das mit Vertauschen zu tun???

Re: T3 Blatt 3 2003-11-11 18:23
Anonymer User
mal eine frage zu aufgabe 3.3

subl %edx, 4(%eax)

wahrscheinlich ist hier die rechte seite der zielausdruck, oder?

Re: T3 Blatt 3 2003-11-11 18:24
LAMER
mal eine frage zu aufgabe 3.3
subl %edx, 4(%eax)
wahrscheinlich ist hier die rechte seite der zielausdruck, oder?

ja

Re: T3 Blatt 3 2003-11-11 18:33
TriPhoenix
ich weiss was XOR ist
110xor010 ergibt 100
aber was hat das mit Vertauschen zu tun???

Am besten experimentier ein wenig. Du hast xor und du hast nu zwei Register zur Verfügung. Da kann man nicht soviele verschiedene Dinge mit machen. Einfach mal ausprobieren [img]http://unimatix.sternenvolk.de/gfx/28.gif[/img]

Re: T3 Blatt 3 2003-11-11 18:40
LAMER
das habe ich ausprobiert
Xorl %eax,%edx 100, 110 %edx=010
Addl %edx,%eax eax=eax+edx=100+010=110
Subl %eax,%edx edx=edx-eax…das klappt jetzt nicht
ist es überhaupt richtig?

Re: T3 Blatt 3 2003-11-11 18:41
TriPhoenix
das habe ich ausprobiert
Xorl %eax,%edx 100, 110 %edx=010
Addl %edx,%eax eax=eax+edx=100+010=110
Subl %eax,%edx edx=edx-eax…das klappt jetzt nicht
ist es überhaupt richtig?

Wenns nicht klappt, offensichtlich nicht. Konzentrier dich mehr aufs xor [img]http://unimatix.sternenvolk.de/gfx/28.gif[/img]

Re: T3 Blatt 3 2003-11-11 19:18
LAMER
subl %edx,4(%eax)
Zielregister %eax, Wert 0x0000000c- 4*0x00000100
richtig?

Re: T3 Blatt 3 2003-11-11 19:19
Silence
Shell redirection in eine Datei ?
Also sowas in der Art
objdump -d template.o > logfile.txtSollte in jeder Konsole gehen (auch cmd.exe)


na ja, wenn ich mir das an in win editor an schau, hab ich das alles in eine zeile reinbeschreiben bekommen…

kann ich vorsichtshalber auch ein scrennshot von der consolenausgabe mitschicken (.jpg)? falls ein "nicht-windows-editor" genauso seltsam das textfile ausgibt?



Re: T3 Blatt 3 2003-11-11 19:28
TriPhoenix
na ja, wenn ich mir das an in win editor an schau, hab ich das alles in eine zeile reinbeschreiben bekommen…

kann ich vorsichtshalber auch ein scrennshot von der consolenausgabe mitschicken (.jpg)? falls ein "nicht-windows-editor" genauso seltsam das textfile ausgibt?

Dann nimm einen Editor, der die Unix-Zeilenschaltung versteht [img]http://unimatix.sternenvolk.de/gfx/28.gif[/img] Die Frage solltest du an deinen Übungsleiter schicken [img]http://unimatix.sternenvolk.de/gfx/28.gif[/img]. Soferns um mich geht, mir reicht die AUsgabe von objdump, meine Programme kennen Unix-Zeilenschaltungen [img]http://unimatix.sternenvolk.de/gfx/28.gif[/img]

Re: T3 Blatt 3 2003-11-11 19:47
LAMER
:9

Re: T3 Blatt 3 2003-11-11 19:49
TriPhoenix
Lösungen posten [img]http://unimatix.sternenvolk.de/gfx/22.gif[/img] Sleeeehtaaaaa [img]http://unimatix.sternenvolk.de/gfx/28.gif[/img]

http://unimatix.sternenvolk.de/cgi-bin/faq.cgi?2003111019644&1

Re: T3 Blatt 3 2003-11-11 19:56
UncleOwen
// zensiert von Slater

so funktioniert das aber auch !!! oder täusche ich mich

In dem konkreten Fall ja. Aber nicht allgemein. Probier mal noch ein paar mehr Zahlen zum Test aus.

Re: T3 Blatt 3 2003-11-11 21:52
dr.Gonzo
Wie waere es mit einem zweiten Thread namens "T3 Blatt 3 - Installationsfragen".
Irgendwie hat das ganze hier naemlich ziemlich wenig mit den Uebungsaufgaben zu tun.
Am besten waere natuerlich eine weitere Sektion in diesem Forum namens "Hilfe zur Linux installation/konfiguration" [img]http://unimatix.sternenvolk.de/gfx/28.gif[/img]

Re: T3 Blatt 3 2003-11-11 21:53
Faleiro
Was ist eine Zeilenschaltung? Wenn ihr den Zeilenumbruch meint, den kann man wunderbar mit dos2unix und unix2dos konvertieren.

Re: T3 Blatt 3 2003-11-11 23:12
TriPhoenix
Was ist eine Zeilenschaltung? Wenn ihr den Zeilenumbruch meint, den kann man wunderbar mit dos2unix und unix2dos konvertieren.

Kram, ich meine ein \n (LF, Zeilenumbruch, "Enter") [img]http://unimatix.sternenvolk.de/gfx/24.gif[/img]

Re: T3 Blatt 3 2003-11-11 23:17
Faleiro
Na also.
, den kann man wunderbar mit dos2unix und unix2dos konvertieren.

Re: T3 Blatt 3 2003-11-11 23:20
UncleOwen
// zensiert von Slater

Huch? Falsche Loesungen sind auch nicht mehr erlaubt?

Re: T3 Blatt 3 2003-11-11 23:23
Slater
wer hätte das gedacht ;)
also ich hatte vorher auch schon mitüberlegt,
und mir fiel gar keine Möglichkeit ein,
3 Min. später hatte ich es dann ;)

und da Lamer ja schon seinen eigenen Text selber gelöscht hatte..

Re: T3 Blatt 3 2003-11-11 23:28
LAMER
wie multipliziert man 16 mit ox10c?

Re: T3 Blatt 3 2003-11-11 23:30
TriPhoenix
wie multipliziert man 16 mit ox10c?

Im Notfall mit dem Windoof-Taschenrechner oder kcalc oder gnome-calc-tool [img]http://unimatix.sternenvolk.de/gfx/28.gif[/img]

Re: T3 Blatt 3 2003-11-11 23:35
LAMER
muss ich 16 auch in Hexadezimal umwandeln?

Re: T3 Blatt 3 2003-11-11 23:42
Fred
Grundgütiger, der Thread ist ja geradezu explodiert…

Zu Aufgabe 4 nochmal, hat das "Zweierkomplement" zu bedeuten, dass wir den Vorzeichenwechsel manuell machen müssen?
Nein. Es ist nur wichtig zu wissen, in welchem Format die Zahl vorliegt, damit man
a) sehen kann, ob sie negativ ist
b) den richtigen Algorithmus schreiben kann, um das Vorzeichen umzudrehen

Die Zahl in %eax könnte ja genau so gut im Einerkomplement stehen oder Vorzeichen und Wert getrennt speichern.
Wenn in %eax beispielsweise 0xFFFFFFFF steht, dann kann das heissen:

Zweierkomplement: -1
Einerkomplement: -0
Vorzeichen/Wert: -2147483647

Wenn in %eax also dieser Wert steht, soll als Ergebnis in %ebx eine 1 stehen, keine 0 und keine 2147483647. Klar?

Eigentlich gibts da ja nen Befehl für… *confused*
Und den kann man selbstverständlich benutzen, wenn man möchte.

kann man die Register so vertauschen?
movl (%ecx),%eax
movl (%ebx),%edx
movl (%eax),%ebx
movl (%edx),%ecx
So wirst Du mit Sicherheit den PC zum Absturz bringen, da Du völlig willkürlich auf Speicher zugreifst.

movl (%ecx),%eax lies das Wort, das an der von %ecx referierten Adresse steht, und speichere es nach %eax

In %ecx steht an dieser Stelle irgendwas zufälliges. Mache Dir den Unterschied klar zwischen %ecx und (%ecx) - Stichwort "Adressierungsmodi".

wieso gibt es den keine Tutorium für T3
An jedem Übungstermin kannst Du Fragen zum nächsten Aufgabenblatt stellen (natürlich können wir Dir kein Kochrezept mit auf den Weg geben, aber das XOR nicht potenziert hätten wir Dir schon gesagt). Ansonsten: schliess Dich mit anderen Studenten kurz, und was genau so wichtig ist: besorg Dir Literatur!

weil das ^, was ja generell als "hoch" steht, hier aus irgendwelchen nicht näher bestimmten gründen das XOR darsterllen soll…
In C bedeutet ^ bitweises XOR. Für "hoch" gibt es in den bekannten imperativen Sprachen glaube ich gar kein "einzelnes Zeichen", dafür muss man immer Funktionen aufrufen.

wahrscheinlich ist hier die rechte seite der zielausdruck, oder?
Das ist in der AT&T Syntax IMMER so! Bei Intel ist es genau umgekehrt.

wie multipliziert man 16 mit ox10c?
Wie multipliziert man im System b mit der Zahl b? Also im Dezimalsystem: wie multipliziert man mit 10? Im Binärsytem: wie multipliziert man mit 2 (binär 10!)?

Re: T3 Blatt 3 2003-11-12 00:01
Fred
Bitte schickt mir keine .o und erst recht keine .exe Dateien! Ich brauche lediglich den Assemblercode und den Objet Dump, das sind beides Textdateien mit Assemblerbefehlen in Klartext und keine Binärdateien.
Und vergesst nicht, mir auch noch den anderen Kram zu schicken, 3.2 ist nicht die einzige Aufgabe auf Blatt 3 [img]http://unimatix.sternenvolk.de/gfx/22.gif[/img]

Re: T3 Blatt 3 2003-11-12 00:27
LAMER
ich verstehe imer noch nicht ganz den Unterschied zwischen
%ecx und (%ecx)

Re: T3 Blatt 3 2003-11-12 00:32
UncleOwen
ich verstehe imer noch nicht ganz den Unterschied zwischen
%ecx und (%ecx)

Ersteres ist Register-Adressierung, zweiteres Register-indirekte Adressierung (Folie 2-45)

Re: T3 Blatt 3 2003-11-12 00:33
low_level
ich verstehe imer noch nicht ganz den Unterschied zwischen
%ecx und (%ecx)

Du hast einen Speicher:

1000: 12345678 1004: 23456789 1008: 34567890 100C: 45678901 mov $1004, %ecx ; ecx = 1004 mov %ecx, %eax ; eax = ecx mov (%ecx), %eax ; eax = speicher[ecx] = 23456789
low_level

Re: T3 Blatt 3 2003-11-12 00:37
LAMER
1000: 12345678
1004: 23456789
1008: 34567890
100C: 45678901

mov $1004, %ecx ; ecx = 1004
incl 8(%ecx) ecx=23456789+8 +1
richtig?

Re: T3 Blatt 3 2003-11-12 00:40
LAMER
objdump -d Ausgabe. Was ist damit gemeint. Die MAtrikelnummer?

Re: T3 Blatt 3 2003-11-12 00:44
low_level
1000: 12345678
1004: 23456789
1008: 34567890
100C: 45678901

mov $1004, %ecx ; ecx = 1004
incl 8(%ecx) ecx=23456789+8 +1
richtig?

nein.

Übersetz es doch einfach mal in Java:

%ecx => ecx
(%ecx) => speicher[ecx]

incl operand => (operand)++

damit wird

incl 8(%ecx) => speicher[ecx+8]++

low_level

Re: T3 Blatt 3 2003-11-12 00:49
LAMER
1004 +8 gehe zum Zielregister 1012, und dann den Inhalt davon + 1
??

Re: T3 Blatt 3 2003-11-12 01:02
low_level
1004 +8 gehe zum Zielregister 1012, und dann den Inhalt davon + 1
??
Parse error.

Es ergibt den Java/C/C++-Code hinter dem "=>". Eine dieser Sprachen kannst Du doch, oder?

Aber ich hatte auch einen Fehler. Ich hab nämlich die Speicherstelle 1012 aus Versehen mit 100C bezeichnet. Sorry.

low_level

Re: T3 Blatt 3 2003-11-12 01:06
LAMER
das kann ich glaube nicht. trotzdem vielen dank für die Hilfe

Re: T3 Blatt 3 2003-11-12 01:09
TriPhoenix
objdump -d Ausgabe. Was ist damit gemeint. Die MAtrikelnummer?

Die Ausgabe, die das Programm objdump mit den gegebenen Parametern auswirft.

Re: T3 Blatt 3 2003-11-15 12:40
Anonymer User
Unimatix lesen, tools runterladen, leicht verdiente 40 Punkte in 10 Minuten [img]http://unimatix.sternenvolk.de/gfx/6.gif[/img]

Re: T3 Blatt 3 2003-11-15 13:35
TriPhoenix
Unimatix lesen, tools runterladen, leicht verdiente 40 Punkte in 10 Minuten [img]http://unimatix.sternenvolk.de/gfx/6.gif[/img]

Jup, die Punktzahlen sehen dieses Mal wirklich derbe aus, weil alle Abgaben bis auf eine schonmal 40 Punkte für die gcc-Aufgabe bekommen haben [img]http://unimatix.sternenvolk.de/gfx/28.gif[/img]

Re: T3 Blatt 3 2003-11-15 18:37
slaYer977
Mal ne kurze Frage:
Bei Aufgabe 3.3 gehe ich da bei jeder Befehlszeile von den oben angegebenen Ursprungswerten aus.

Oder wenn jetzt z.B. der Wert von %eax geändert wird. Wird dieser neuer Wert in den folgenden Befehlszeilen verwendet?

Ich gehe vom ersten Fall aus. Doch diese Frage kam plötzlich in mir auf.

thx

Re: T3 Blatt 3 2003-11-15 18:51
UncleOwen
Hmm, soweit ich mich erinnern kann, kam dieser Fall auf dem Aufgabenblatt nicht vor (oder ich habs nicht gemerkt). Ich habs aber auch so wie Du gemacht, indem ich jede Zeile unabhaengig von den anderen betrachtet habe.

Re: T3 Blatt 3 2003-11-15 19:04
TriPhoenix
Es ist in dieser Aufgabe egal gewesen, es sollte nichts doppelt vorgekommen sein oder ich habe slebst einen fatalen Fehler gemacht [img]http://unimatix.sternenvolk.de/gfx/28.gif[/img]

Re: T3 Blatt 3 2006-01-04 15:58
Anonymer User
Aufgabe 3.4 [20 Punkte] :
Schreiben Sie ein Assembler-Programm, das den Betrag einer im Register %eax stehenden Zahl
(Zweierkomplement) nach %ebx schreibt. Der Wert in %eax soll nicht ver ¨andert werden.

_saveEAX: movl %eax, %ebx ; Inhalt von eax nach ebx schreiben je _neg ; Wenn Zahl negativ _neg: decl %ebx ; decrement ebx notl %ebx ; bitwise negation
Haut das nicht so einfach auch hin??

Wenn ich das Ergebnis eines XORS in EBX packe

_saveEAX: movl %eax, %ebx ; Inhalt von eax nach ebx schreiben xorl %eax, %ebx ;
Was hab ich denn dann davon?

Re: T3 Blatt 3 2006-01-04 22:39
Master M
FBI, sie sind festgenommen. Sie wurden beim (Thread-)Leichenschänden beobachtet! Alles, was sie jetzt sagen kann vor dem TriBunal gegen sie verwendet werden. ;)

Re: T3 Blatt 3 2006-01-05 01:27
GroßerSchöpfer
Blöde frage, aber ist das gerade Sparc oder Intel?

Re: T3 Blatt 3 2006-01-05 01:35
UncleOwen
Sparc waere dieses Jahr, aber sieht mehr wie Intel aus? *confused*

Re: T3 Blatt 3 2006-01-05 13:51
Anonymer User
Intel, aber in Zhangs AT & T Syntax !!!

Re: T3 Blatt 3 2006-01-05 14:00
UncleOwen
Haeh? Zhang? Der liest doch dieses Jahr gar kein T3, sondern nur RS?

Re: T3 Blatt 3 2006-01-05 14:05
Fred
_saveEAX: movl %eax, %ebx ; Inhalt von eax nach ebx schreiben je _neg ; Wenn Zahl negativ _neg: decl %ebx ; decrement ebx notl %ebx ; bitwise negation
Also das ist doch schon mal grober Unfug. Was soll denn ein bedingter Sprung nützen, welcher einfach nur zum nächsten Befehl springt, welcher also sowieso ausgeführt wird, auch wenn der bedingte Sprung nicht genommen wird?
Ausserdem: worauf soll sich das "jump if equal" denn überhaupt beziehen? Damit testet man jedenfalls nicht, ob die Zahl negativ ist…

_saveEAX: movl %eax, %ebx ; Inhalt von eax nach ebx schreiben xorl %eax, %ebx ;
Diese beiden Zeilen setzen ebx auf 0… auch nicht gerade das, was Du wolltest [img]http://www.fb18.de/gfx/25.gif[/img]

Re: T3 Blatt 3 2006-01-05 14:46
Anonymer User
Ach ja, ich sollte eigentlich cheken ob das Negative Flag gestzt ist oder?

Wird es denn gesetzt? Eigentlich doch heher nicht, denn eine 2er Komplementzahl ist ja so als negative Zahl dargestellt.

Also Leute wie checke ich nun, ob sie negativ ist? Ist es nicht so, dass bei negativen im 2er K. das vorderste Bit ne 1 ist????

Re: T3 Blatt 3 2006-01-05 14:47
Anonymer User
Zitat:

_saveEAX:
movl %eax, %ebx ; Inhalt von eax nach ebx schreiben
xorl %eax, %ebx ;



Diese beiden Zeilen setzen ebx auf 0… auch nicht gerade das, was Du wolltest

Nee Quaark, in der Aufgabe stehts doch, in eax steht ne Zahl im 2er KOmplement, die wirs erst nach ebx kopiert, damit sie in eax bleiben kann, in ebx kann man damit weiter fummeln!

Re: T3 Blatt 3 2006-01-05 14:54
chris
Haeh? Zhang? Der liest doch dieses Jahr gar kein T3, sondern nur RS?

Achte mal aufs Datum der Postings… [img]http://www.fb18.de/gfx/22.gif[/img]

Re: T3 Blatt 3 2006-01-05 14:59
Fred
Ach ja, ich sollte eigentlich cheken ob das Negative Flag gestzt ist oder?
Das macht Sinn, ja.

Wird es denn gesetzt?
Es wird genau dann gesetzt, wenn das Ergebnis einer Operation negativ ist.

Eigentlich doch heher nicht, denn eine 2er Komplementzahl ist ja so als negative Zahl dargestellt.
Hä?

Also Leute wie checke ich nun, ob sie negativ ist?
orl %ebx, %ebx

movl %eax, %ebx
xorl %eax, %ebx

Diese beiden Zeilen setzen ebx auf 0… auch nicht gerade das, was Du wolltest
Nee Quaark, in der Aufgabe stehts doch, in eax steht ne Zahl im 2er KOmplement, die wirs erst nach ebx kopiert, damit sie in eax bleiben kann, in ebx kann man damit weiter fummeln!
Ja, aber das "Fummeln" bewirkt hier nur, dass ebx auf 0 gesetzt wird. Ein XOR mit zwei gleichen Werten als Operanden (in eax und ebx steht ja nach dem mov der gleiche Wert) ergibt immer 0.

Wie wäre es mit folgendem Code:
movl %eax, %ebx movl %eax, %edx sarl $31, %edx xorl %edx, %ebx subl %edx, %ebx Rechne das doch mal mit mehreren Beispielen durch und dann melde Dich wieder [img]http://www.fb18.de/gfx/25.gif[/img]

Re: T3 Blatt 3 2006-01-05 15:27
TriPhoenix
Haeh? Zhang? Der liest doch dieses Jahr gar kein T3, sondern nur RS?

Achte mal aufs Datum der Postings… [img]http://www.fb18.de/gfx/22.gif[/img]

Anonymer User erstellt am 05.01.2006 15:58

Das ist schon frisch hier in der neuesten Diskussion.

@Problemsteller: Intel bietet die Befehle JS und JNS (Jump if Sign und Jump if Not Sign), mit denen kannst du anhand des Negativ-Flags (Sign-Bit genannt) bedingte Sprünge ausführen. Das Sign-Flag wird nach Rechenbefehlen (wie add, sub, and, or, …) passend zum Ergebnis gesetzt.

Re: T3 Blatt 3 2006-01-05 16:25
UncleOwen
Haeh? Zhang? Der liest doch dieses Jahr gar kein T3, sondern nur RS?

Achte mal aufs Datum der Postings… [img]http://www.fb18.de/gfx/22.gif[/img]

Ja, ich weiss. Trotzdem, was hat das in 'nem T3-Thread zu suchen?

Re: T3 Blatt 3 2006-01-05 20:41
TriPhoenix
Ich nehme mal an dass es eine der Zhang-Aufgaben von damals ist.

Re: T3 Blatt 3 2006-01-05 21:15
Fred
Stimmt. Kannst Du Dich etwa nicht mehr daran erinnern? [img]http://www.fb18.de/gfx/25.gif[/img]

Re: T3 Blatt 3 2006-01-06 14:29
Anonymer User
@Problemsteller: Intel bietet die Befehle JS und JNS (Jump if Sign und Jump if Not Sign), mit denen kannst du anhand des Negativ-Flags (Sign-Bit genannt) bedingte Sprünge ausführen. Das Sign-Flag wird nach Rechenbefehlen (wie add, sub, and, or, …) passend zum Ergebnis gesetzt.

Ah jo danke Tri.

Abri: Laut Aufgabe steht eine im 2er-Komplement dargetsllte Zahl im Register eax, dessen Betrag benötigt wird.

Ist diese Zahl negativ (aus irgendeiner Berechnung oder irgendwann mal aus dem Speicher geholt, was auch immer), wird dann auch das Sign-Flag gesetzt? Wenn ja ists ja ganz easy.

Aber ich denke eher, das wir die 2er Komplementdarstellung auseinanderreißen sollen, um aus einer eventuell negative Zahl den Betrag zu ermittel. Oder????

Re: T3 Blatt 3 2006-01-06 15:55
Fred
Laut Aufgabe steht eine im 2er-Komplement dargetsllte Zahl im Register eax, dessen Betrag benötigt wird.

Ist diese Zahl negativ (aus irgendeiner Berechnung oder irgendwann mal aus dem Speicher geholt, was auch immer), wird dann auch das Sign-Flag gesetzt? Wenn ja ists ja ganz easy.
Das Sign Flag speichert das Vorzeichen des Ergebnisses der letzten arithmetischen Operation. Du musst also irgendwas mit eax machen, was den Wert nicht verändert aber die Flags setzt. Beliebt sind:

orl %eax, %eax
andl %eax, %eax
addl $0, %eax
subl $0, %eax
cmpl $0, %eax

Danach kannst Du dann mit js (oder jns, je nach Bedarf) in Abhängigkeit vom Sign Bit springen.

Aber ich denke eher, das wir die 2er Komplementdarstellung auseinanderreißen sollen, um aus einer eventuell negative Zahl den Betrag zu ermittel. Oder????
Das könnte man natürlich machen (oberstes Bit isolieren etc.), ist aber nicht notwendig. Vertrau mir [img]http://www.fb18.de/gfx/25.gif[/img]

EDIT: Auch wenn es dadurch um einiges eleganter geht, siehe die Lösung aus meinem letzten Post.