Hallo! Ich hab ein riesigen Problem. Ich brauch für meine Maturaarbeit eine Multiplikationsroutine, die im Assembler geschrieben ist. Sie soll Eine Zahl(16 Bit), die in 2 Registern aufgeschrieben ist mit einer weiteren solchen multiplitzieren. Wie gesagt, das ganze im Assembler Code. Weiß einer von euch, wo es sowas gibt, oder könnte mir die jemand vielleicht sogar schreiben. Das wäre echt super. Kann gegebenenfalls eine 16Bit Divisionsroutine anbieten. mfg
das divisionsprogramm habe ich bekommen. Ich versteh grad noch zirka wie es funktioniert
Ok, ich weiss nicht was eine Maturaarbeit ist, aber ich denke du bist soweit dass du in Google in etwa folgende Suche durchführen kannst: http://www.google.de/search?hl=de&q=multiplikation+assembler&meta=&btnG=Google-Suche Treffer nummer eins gibt sogar eine Beschreibung mit Bildern her.
Könnte es sein, dass deine Lehrer wollen, das du das alleine schreibst? Ich mein, es macht doch wenig Sinn, dass die dir die Aufgabe mit dem Ziel geben, jemand anderes zu fragen, ob er sie für dich löst. Hier mein gutgemeinter Rat: Versuch dir eine Lösung zu überlegen und stell dann hier etwas speziellere Fragen. Keine Sau hat Lust, deine Hausaufgaben für dich zu machen.
Warum stellst du so ne bescheuerte Frage überhaupt in der Codesammlung?
Nochwas konstruktives: Ihr habt doch hoffentlich in der Schule gelernt, wie man schriftlich auf dem Papier multipliziert. Du wirst es kaum glauben, aber das geht auch mit Binärzahlen. Und jetzt halt dich fest, da ist es sogar noch einfacher! Also probier das Multiplizieren von zwei Binärzahlen erstmal von Hand auf Papier aus und versuch dann einen Algorithmus zu schreiben.
zu Willi PIC! nicht AVR Zu den anderen: Matura=Abitur. Den rest des programms (eben bis auf division und multiplikation) habe ich selbst gemacht. auch die hatdware. bei den beiden sachen setze ich aus. eine multiplikation von 8x 8 bit könnte ich vl sogar. was ich nicht verstehe ist wie ichs machen soll, dass die 2 register wie eines behandelt werden.
Zwei register können und müssen nicht wie eins behandelt werden. Ob AVR oder PIC ist egal. Das prinzip ist das gleiche. Hast du das konstruktive von 28.03.2007 16:19 schon getestet?
Ich glaube 16x16 Bit Multiplikationsbeispiele für PIC sind bei Microchip unter den App-Notes zu finden. www.microchip.com
ja, ich weiss dass ich mit dem 2er koplement arbeiten muss, rotateirgendwas-befehl. da habe ich dann die multiplikation um eine gerade zahl(jeweils das doppelte). was ich aber nicht verstehe ist wie ich es bewerkställigen sol, dass mir die bits, wenn sie in dem niedrigeren der zwei register schon rausfallen würden( da setzt sich das carry-bit, oder?) die ins höhere register übertragen kann.
" Den rest des programms (eben bis auf division und multiplikation) habe ich selbst gemacht. " Was ist der Rest desProgramms? Mir scheint dir fehlen völlig die Grundlagen. Was habt ihr denn in der Schule schon mit den PICs gemacht?
> Mir scheint dir fehlen völlig die Grundlagen.
Welch geistreicher Kommentar...
Was glaubst du wohl, warum er hier um Hilfe bittet? Na? Ne Idee?
@ Katzeklo Danke fürs Kompliment. Er schrieb dass er schon was mit den PICs gemacht hätte und ihm nur noch die Division fehlen würde. (Aber das hast du ja sicher gelesen.) Jetzt scheint mir aber dass man bei den Grundlagen ansetzen muss, deshalb wollte ich wissen was er schon kann.
Sorry, wenn es von mir etwas derb rüber kam, war nicht unbedingt meine Absicht.
naja, ich hab den adc programiert (was allerdings nur ein nachlesen im datasheet und einsetzen in die richtigen register war), die displayanszeuerung, ansteuerung der relais, naja und die hardwareschaltung, div. verstärker usw.
Hier ist ein guter Algorithmus für Pics beschrieben: http://www.restena.lu/convict/Jeunes/Math/Fast_operations.htm
Hier, das habe ich mir vor Ewigkeiten mal ausgedacht. Einmal: Z[R31:R30] mal X[R27:R26] gleich R25:R24:R23:R22 und Z[R31:R30] durch Y[R29:R28] gleich X[R27:R26] Rest in Z(R31:R30) Ist allerdings für AVR's.. Vielleicht nützts ja was...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.