Hausübung 1

Nezir
Neuling
Neuling
Beiträge: 3
Registriert: 9. Apr 2010 01:21

Hausübung 1

Beitrag von Nezir »

Landen deklarierte Variablen im Speicher oder im Register?


MfG

patrik_s.stud.tu
Mausschubser
Mausschubser
Beiträge: 69
Registriert: 12. Okt 2006 20:56

Re: Hausübung 1

Beitrag von patrik_s.stud.tu »

Was genau meinst du? Welche deklarierten Variablen? a-e?

Nezir
Neuling
Neuling
Beiträge: 3
Registriert: 9. Apr 2010 01:21

Re: Hausübung 1

Beitrag von Nezir »

Ja, genau (a-e).

Ich hab noch ne zweite Frage zu (div c). Wenn man diesen Befehl aufruft, werden da bestimmte Register automatisch angesprochen? Weil letztendlich ruft man den Befehl ja nur auf der Variablen auf.

sensei
Windoof-User
Windoof-User
Beiträge: 29
Registriert: 29. Jun 2004 09:19

Re: Hausübung 1

Beitrag von sensei »

Guck mal hier: DIV
Das hat mir geholfen.

FGB
Mausschubser
Mausschubser
Beiträge: 45
Registriert: 21. Jan 2006 14:41
Wohnort: Darmstadt
Kontaktdaten:

Re: Hausübung 1

Beitrag von FGB »

Ich habe a-e mal so gewertet, als seien sie im Speicher gegeben.

An welcher Aufgabe ich gerade ein bisschen hänge ist die 2.
Ich darf ja keine konditionalen Befehle benutzen. Sprich kein Vergleiche. Hmmm

Also bei

Code: Alles auswählen

0011
0101
0110
1111
wird eine 0 von rechts drangehängt, oder? Das wäre doch dann movzbl oder?

Bei

Code: Alles auswählen

0001
0010
0100
0111
1011
1101
müsste dann die 1 von rechts drangehängt werden. In dem Fall movsbl.

Wie prüfe ich jetzt auf eine gerade bzw. ungerade Anzahl. Das ist sicherlich sooo enifach und ich komm gerade nicht drauf.

Hmmm

ivoch
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 199
Registriert: 3. Mär 2004 10:51

Re: Hausübung 1

Beitrag von ivoch »

FGB hat geschrieben:Ich habe a-e mal so gewertet, als seien sie im Speicher gegeben.

An welcher Aufgabe ich gerade ein bisschen hänge ist die 2.
Ich darf ja keine konditionalen Befehle benutzen. Sprich kein Vergleiche. Hmmm

Also bei

Code: Alles auswählen

0011
0101
0110
1111
wird eine 0 von rechts drangehängt, oder? Das wäre doch dann movzbl oder?
Ja, es wird eine 0 von Rechts drangehängt und nein, movzbl ist hier der falsche Befehl. movzbl macht Folgendes:

Code: Alles auswählen

Gegeben: 1010 1001
Nach Anwenden von movzbl: 0000 0000 0000 0000 0000 0000 1010 1001 (also aus dem Byte wird ein Long gemacht, indem 24 Nullen hinzugefügt werden.
Die anderen movz Befehle funktionieren genauso, nur ist die Anzahl von Nullen unterschiedlich (movzbw - 8 Nullen, movzwl - 16 Nullen) und auch die Länge des zu erweiternden Operanden (movzbw - 8 Bits, movzwl - 16 Bits)

FGB hat geschrieben:Bei

Code: Alles auswählen

0001
0010
0100
0111
1011
1101
müsste dann die 1 von rechts drangehängt werden. In dem Fall movsbl.
Die movs Befehle funktionieren genauso wie die movz Befehle oben mit dem einzigen Unterschied, dass bei negativen Zahlen Einsen hinzugefügt werden und nicht Nullen.

FGB hat geschrieben:Wie prüfe ich jetzt auf eine gerade bzw. ungerade Anzahl. Das ist sicherlich sooo enifach und ich komm gerade nicht drauf.
Hier kann ich dir leider nicht helfen, denn die Lösung IST recht einfach (wenn auch etwa 10-15 Zeilen lang) und wenn ich überhaupt etwas sagen würde, dann würde ich dir so gut wie alles verraten ;)

SaschaWinf
Erstie
Erstie
Beiträge: 22
Registriert: 10. Sep 2010 15:37

Re: Hausübung 1

Beitrag von SaschaWinf »

ivoch hat geschrieben:Hier kann ich dir leider nicht helfen, denn die Lösung IST recht einfach (wenn auch etwa 10-15 Zeilen lang) und wenn ich überhaupt etwas sagen würde, dann würde ich dir so gut wie alles verraten ;)
Der gesammte Code kann in 11 Zeilen geschrieben werden. Es geht also auch in weniger schritten.

Tip.: Betrachte jede 1 für sich und zähle sie dann irgendwie ;) (klingt nicht sehr hilfreich, aber ist es)

FGB
Mausschubser
Mausschubser
Beiträge: 45
Registriert: 21. Jan 2006 14:41
Wohnort: Darmstadt
Kontaktdaten:

Re: Hausübung 1

Beitrag von FGB »

SaschaWinf hat geschrieben:
ivoch hat geschrieben:Hier kann ich dir leider nicht helfen, denn die Lösung IST recht einfach (wenn auch etwa 10-15 Zeilen lang) und wenn ich überhaupt etwas sagen würde, dann würde ich dir so gut wie alles verraten ;)
Der gesammte Code kann in 11 Zeilen geschrieben werden. Es geht also auch in weniger schritten.

Tip.: Betrachte jede 1 für sich und zähle sie dann irgendwie ;) (klingt nicht sehr hilfreich, aber ist es)
Danke für eure Antworten :)
Zählen wollte ich auch, aber ich muss ja irgendwie prüfen, ob "dort" eine 1 steht. Ist das nicht schon wieder ein Vergleich, sprich ein konditionaler Befehl? Das darf ich ja nicht benutzen. Deswegen überlege ich die ganze Zeit, wie ich das am Besten anstelle :D

*grübel*

Grüße und danke,
Felix

Benutzeravatar
cofi
Mausschubser
Mausschubser
Beiträge: 86
Registriert: 22. Sep 2009 12:07

Re: Hausübung 1

Beitrag von cofi »

FGB hat geschrieben:Ist das nicht schon wieder ein Vergleich, sprich ein konditionaler Befehl? Das darf ich ja nicht benutzen.
Ja, Spruenge braucht man deshalb aber nicht. Es gibt auch Befehle die im Erfolgsfall das richtige haben und sonst auch nichts kaputtmachen.

ivoch
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 199
Registriert: 3. Mär 2004 10:51

Re: Hausübung 1

Beitrag von ivoch »

SaschaWinf hat geschrieben:
ivoch hat geschrieben:Hier kann ich dir leider nicht helfen, denn die Lösung IST recht einfach (wenn auch etwa 10-15 Zeilen lang) und wenn ich überhaupt etwas sagen würde, dann würde ich dir so gut wie alles verraten ;)
Der gesammte Code kann in 11 Zeilen geschrieben werden. Es geht also auch in weniger schritten.

Tip.: Betrachte jede 1 für sich und zähle sie dann irgendwie ;) (klingt nicht sehr hilfreich, aber ist es)
Es würde mich interessieren, wie du alles in 11 Zeilen hingekriegt hast. Kannst du mir mal deinen Code per PN schicken? :)

SaschaWinf
Erstie
Erstie
Beiträge: 22
Registriert: 10. Sep 2010 15:37

Re: Hausübung 1

Beitrag von SaschaWinf »

ivoch hat geschrieben:
SaschaWinf hat geschrieben:
ivoch hat geschrieben:Hier kann ich dir leider nicht helfen, denn die Lösung IST recht einfach (wenn auch etwa 10-15 Zeilen lang) und wenn ich überhaupt etwas sagen würde, dann würde ich dir so gut wie alles verraten ;)
Der gesammte Code kann in 11 Zeilen geschrieben werden. Es geht also auch in weniger schritten.

Tip.: Betrachte jede 1 für sich und zähle sie dann irgendwie ;) (klingt nicht sehr hilfreich, aber ist es)
Es würde mich interessieren, wie du alles in 11 Zeilen hingekriegt hast. Kannst du mir mal deinen Code per PN schicken? :)
Gerne nach dem Abgabetermin ;) schreib mir am besten dann nochmal eine PN, ich versuch aber dran zu denken

Antworten

Zurück zu „Archiv“