Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Dies sind meine Aufgaben und ich habe so ziemlich kein Ahnung wie ich anfangen soll.

Die Aufgaben bestehen darin drei kleine Assemblerprogramme zu schreiben. Übersenden Sie bitte diese Assemblerprogramme als ASCII-Texte, so daß die Korrektoren Ihre Programme problemlos auf einer Sparc ausführen lassen können.

Aufgabe 1 (25 Punkte):

Bestimmen Sie die Werte der folgenden Assemblerausdrücke:

166 % ~10, −166 % ~10, 166 % ~(−10), −166 % ~(−10).

Textdatei: Aufgabe01.s

Kommentieren Sie kurz die eigenartigen Ergebnisse.

Aufgabe 2 (35 Punkte):

Schreiben Sie ein Assemblerprogramm zur Erzeugung von Zufallszahlen, benutzen Sie dabei die Formel A := (A*B + 1) mod M mit M =1000000000, B = 3141528 und Startwert 1234567. Geben Sie die ersten 10 Pseudozufallszahlen aus.

Textdatei: Aufgabe02.s

Aufgabe 3 (40 Punkte):

Schreiben Sie ein rekursives Assemblerprogramm zur Berechnung von Fibonaccizahlen.

Fibonaccizahlen sind definiert durch: F0 = 0, F1 = 1, Fn = Fn−1 + Fn−2 für n = 2, 3, . . .

Geben Sie die Fibonaccizahlen F46, F47 und F48 aus.

Textdatei: Aufgabe03.s

Geschrieben
Dies sind meine Aufgaben und ich habe so ziemlich kein Ahnung wie ich anfangen soll.
Und was möchtest du jetzt hier erreichen? Möchtest du konkrete Antworten? Dann solltest du konkrete Fragen stellen, und hier nicht einfach nur Aufgabentexte abladen, das ist ziemlich unhöflich. Das erweckt den Eindruck, dass du hier andere die Arbeit machen lassen möchtest, und das dann als deine eigene Leistung bewerten lassen willst.

Zu Aufgabe 1:

Weißt du, was die Operatoren ~ und % tun?

Geschrieben

Es tut mir Leid, dass es so aussieht als wollte ich nur Lösungen haben. Ich bin im Moment nur sehr verzweifelt weil ich da nicht durchsteige.

Die Ausdrücke verstehe ich schon. Und den Begehlssatz kenne ich ja auch.

Aber wenn es nun dazu kommt, dass ich ein komplettes Program schreiben soll, bin ich so ziemlich verloren.

Wie genau, mit welchen Befehlen muss ich da anfangen? Und wie beende ich das Programm richtig?

Ich weiss dass % die modulo Funktion ist und ~ das Einerkomplement.

166 % ~10, hier ist das Ergebnis 66? richtig?

−166 % ~10, hier ist as -66?

166 % ~(−10), hier 66?

−166 % ~(−10) hier -66?

ich erinnere, dass irgendwie ein minus nicht gelesen wird, ich weiss aber nicht mehr genau wie das war?

und wenn ich nun diese Ausdrücke in Programme packen soll, wie fange ich da an.

Ein paar Beispiele könnten mir ja helfen, ich möchte ja nicht direkt die Lösung haben, ich möchte es ja auch verstehen.

Ich bin nur gerade sehr verzweifelt, weil meine ganze Arbeit in diesem Semester umsonst gewesen wäre wenn ich jetzt die Assemblerprogramme nicht verstehe, und das sind nur die letzten beiden Aufagbenzettlel. Das wäre dann schade wenn es daran scheitern würde.

Geschrieben
Aber wenn es nun dazu kommt, dass ich ein komplettes Program schreiben soll, bin ich so ziemlich verloren.

Wie genau, mit welchen Befehlen muss ich da anfangen? Und wie beende ich das Programm richtig?

Mag sein, dass ich mich irre, aber hätte genau das nicht Bestandteil einer Vorlesung sein sollen? Hast du keine Unterlagen dazu?

Ich weiss dass % die modulo Funktion ist und ~ das Einerkomplement.
Soweit richtig.

166 % ~10, hier ist das Ergebnis 66? richtig?
Nein.

Zunächst der triviale Fall: 166 % 10 = 6

Welchen "Wert" stellt denn das Einerkomplement von 10 dar, auf einer Architektur, die negative Werte durch Zweierkomplement bildet?

Geschrieben
Mag sein, dass ich mich irre, aber hätte genau das nicht Bestandteil einer Vorlesung sein sollen? Hast du keine Unterlagen dazu?

Soweit richtig.

Nein.

Zunächst der triviale Fall: 166 % 10 = 6

Welchen "Wert" stellt denn das Einerkomplement von 10 dar, auf einer Architektur, die negative Werte durch Zweierkomplement bildet?

Ich habe Unterlagen aber die enthalten nur den Befehlssatz und die Operationen usw. Ich habe kein genaues detailiertes und vollständiges Beispiel für ein Program an dem es alles genug nachvollziehen kann um selber eins zu schreiben.

Du hast Recht: 166 % 10 = 6 (ich hatte %100 gerechnet)

also das Einerkomplement wird hier benutzt um negative Zahlen darzustellen? also ist ~10 gleich -10?

Geschrieben
also das Einerkomplement wird hier benutzt um negative Zahlen darzustellen? also ist ~10 gleich -10?
Das Einerkomplement ist eine Möglichkeit, negative Zahlen darzustellen. Allerdings hat sich heute das Zweierkomplement praktisch durchgesetzt.

Ich beschränke das hier mal auf 8 bit:

 10 = 00001010b
~10 = 11110101b[/code]

Das ist das Zweierkomplement von 11. ~10 entspricht also -11

Und 166 % (-11) ist 1.

Geschrieben
Das Einerkomplement ist eine Möglichkeit, negative Zahlen darzustellen. Allerdings hat sich heute das Zweierkomplement praktisch durchgesetzt.

Ich beschränke das hier mal auf 8 bit:

 10 = 00001010b

~10 = 11110101b

Das ist das Zweierkomplement von 11. ~10 entspricht also -11

Und 166 % (-11) ist 1.

wie kommst du auf -11 für ~10? das Einerkomplement zu 1010 ist dock 0101

Geschrieben
wie kommst du auf -11 für ~10?
Genau das habe ich doch beschrieben.

Das Einerkomplement von 10 ist das Zweierkomplement von 11. Und da üblicherweise das Zweierkomplement benutzt wird, um negative Zahlen auszudrücken, ist ~10 eben -11.

Geschrieben


mov ax, 14
mov bx, 3
xor dx, dx
div bx
[/PHP]

In Assembler ist üblicherweise jede Integer-Division automatisch eine Modulo-Division - auch wenn vielleicht nicht jede Prozessor-Architektur den Restwert liefert (liegt daran, daß die Division über Bitrotation des Divisors und Dividenden mit Subtraktion berechnet wird). Das Ergebnis ist in ax und der Rest steht in dx. Die FPUs, welche man auch in ASM direkt ansprechen kann, liefern das ohnehin.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...