16x16 Multiplikation Pic

Gast #528477
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
Gast #528491
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.
Gast #528501
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.
Gast #528507
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.
Gast #528581
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.
Gast #528641
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?
Gast #528647
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.
Gast #528671
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.
Gast #528802
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...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren