mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 16x16 Multiplikation Pic


Autor: markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: willivonbienemaya (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du kannst 16bit dividieren, aber nicht multiplizieren?
echt?

Autor: markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das divisionsprogramm habe ich bekommen. Ich versteh grad noch zirka wie 
es funktioniert

Autor: willivonbienemaya (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Treffer nummer eins gibt sogar eine Beschreibung mit Bildern her.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: willivonbienemaya (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum stellst du so ne bescheuerte Frage überhaupt in der Codesammlung?

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: ... (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dafür gibts das carry flag.

Autor: willivonbienemaya (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: tastendrücker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube 16x16 Bit Multiplikationsbeispiele für PIC sind bei Microchip 
unter den App-Notes zu finden. www.microchip.com

Autor: markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: willivonbienemaya (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"
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?

Autor: Katzeklo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Mir scheint dir fehlen völlig die Grundlagen.

Welch geistreicher Kommentar...

Was glaubst du wohl, warum er hier um Hilfe bittet? Na? Ne Idee?

Autor: willivonbienemaya (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@  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.

Autor: Katzeklo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, wenn es von mir etwas derb rüber kam, war nicht unbedingt meine 
Absicht.

Autor: markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: willivonbienemaya (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier ist ein guter Algorithmus für Pics beschrieben:
http://www.restena.lu/convict/Jeunes/Math/Fast_ope...

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Matthias (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ja, Anhang vergessen

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.