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
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.
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?
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?
@ 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.
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, 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...
Eine eigene Frage?
Dieser Thread ist über 19 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.