Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
markus g Gast
|
Verfasst am: 17. Mai 2006 13:43 Titel: Einfacher Assembler-Term |
|
|
Hallo,
ich hab eine Aufgabe in Info bekommen Sie lautet: (x-4)*(x-3)*(x-2)*(x-1)* x
Ich hoffe mir kann jmd helfen.Am besten eine einfache Lösung. |
|
Nach oben |
|
|
|
ED209
Anmeldungsdatum: 30.05.2005 Beiträge: 122
|
Verfasst am: 17. Mai 2006 19:50 Titel: Re: Einfacher Assembler-Term |
|
|
markus g hat Folgendes geschrieben: | Hallo,
ich hab eine Aufgabe in Info bekommen Sie lautet: (x-4)*(x-3)*(x-2)*(x-1)* x
Ich hoffe mir kann jmd helfen.Am besten eine einfache Lösung. |
Was hat dieser Term mit Assembler zu tun? _________________ +++++++++++++[>++++>+<<-]>.--.>---. |
|
Nach oben |
|
|
PaladinXL
Anmeldungsdatum: 13.05.2005 Beiträge: 17
|
Verfasst am: 17. Mai 2006 20:54 Titel: |
|
|
Ich denke, er möchte den Term in Assembler ausgedrückt haben. |
|
Nach oben |
|
|
Crotaphytus
Anmeldungsdatum: 08.05.2005 Beiträge: 213
|
Verfasst am: 17. Mai 2006 22:09 Titel: |
|
|
Na ja, also Assemblersprachen gibts ja meines Wissens viele... _________________ Genie oder Wahnsinn? Wer kann es wissen... |
|
Nach oben |
|
|
Tobias
Anmeldungsdatum: 15.02.2005 Beiträge: 149
|
Verfasst am: 17. Mai 2006 22:20 Titel: |
|
|
Es gibt ja nun nicht DEN Assembler.. Hier mal ein Beispiel in x86:
Code: |
; (x-4)*(x-3)*(x-2)*(x-1)* x
mov ecx, 4 ; 4 Multiplikationen
mov ebx, x
mov eax, ebx
@LOOP:
mov edx, ebx
sub edx, ecx
mul edx
dec ecx
jnz @LOOP
; hier ist das Ergebnis in eax
|
|
|
Nach oben |
|
|
Paul_H
Anmeldungsdatum: 01.02.2006 Beiträge: 52 Wohnort: Bonn
|
Verfasst am: 18. Mai 2006 14:21 Titel: |
|
|
Hier mal eine Variante im SPIM-Simulator:
.
. //x ist in $t0 vorausgesetzt
.
.text
main: sub $s4, $t0, 4 //(x-4)
sub $s3, $t0, 3 //(x-3)
sub $s2, $t0, 2 //(x-2)
sub $s1, $t0, 1 //(x-1)
mul $s0, $s4, $s3 //(x-4)*(x-3)
mul $s0, $s0, $s2 //(x-4)*(x-3)*(x-2)
mul $s0, $s0, $s1 //(x-4)*(x-3)*(x-2)*(x-1)
mul $s0, $s0, $t0 //End-Ergebnis in $s0
li $v0, 1 //Hier eine INT-Ausgabe Nur möglich, wenn x eine ganze Zahl.
move $a0, $s0
syscall
Es gibt ja wie Crotaphytus schon sagte nicht nur einen Assembler. Wenn du einfach einen Pseudocode brauchst, sprich ihr von einer imaginären Maschine ausgeht, versuch ich mal mein Beispiel mal anders zu schreiben:
load t0
inv 4
store s4
add t0 s4
store s4
load t0
inv 3
store s3
add t0 s3
store s3
load t0
inv 2
store s2
add t0 s2
store s2
load t0
inv 1
store s1
add t0 s1
store s1
.
.
.
Ungefähr so sah der erste Assembler-Code aus, den ich in meiner Info-Vorlesung gesehen habe. Wir gehen davon aus, dass es die Subtraktion nicht gibt und wir das Invertierte addieren müssen.
Vielleicht hilft dir dass einigermaßen weiter, ansonsten gib mal den konkreten Prozessortyp an, der deinen Assember benutzt. Hier finden sich sicher welche, die dir bei deinem Problem spezielle Hilfe eleisten können. |
|
Nach oben |
|
|
markusg Gast
|
Verfasst am: 18. Mai 2006 16:33 Titel: |
|
|
Den Prozessortype kann ich dir nicht so sagen. Wir benutzen einen auf BlueJ basierten Modellprozessor. Es sind lediglich die Befehle, wie Paul_H sie benutzt (LDA, STORe,..usw) erlaubt. Hat jmd eine Ahnung davon? |
|
Nach oben |
|
|
markusg Gast
|
Verfasst am: 23. Mai 2006 19:28 Titel: |
|
|
Hat jemand eine Idee, wie ich diesen Term realisieren könnte? |
|
Nach oben |
|
|
Crotaphytus
Anmeldungsdatum: 08.05.2005 Beiträge: 213
|
Verfasst am: 23. Mai 2006 19:49 Titel: |
|
|
Deine Aufgaben macht dir hier keiner. Woran scheiterts denn noch, Ansätze gibts doch genug. Wenn du dir jetzt nicht mal die Mühe machen willst, das von einer Assemblersprache in die nächste zu übertragen... Na ja, ich sag da jetzt nix zu... _________________ Genie oder Wahnsinn? Wer kann es wissen... |
|
Nach oben |
|
|
|