8051 mathematik-routinen

Gast #80123
Lesenswert?
• ▲
▼
hi,

könntet ihr mal meinen dateianhang anschaun und mir sagen ob diese vier
routinen korrekt funktionieren und wie man sie noch optimieren könnte?

dann hätte ich noch ne frage: meine multiplikation und meine division
sind bisher noch recht einfach gehalten... was für methoden gibt es da
noch?

danke schonmal

MFG Marcel
Angehängte Dateien:
#80124
Lesenswert?
• ▲
▼
Ich weiß jetzt nicht, mit welchen Architekturen Du vorher gearbeitet
hast, aber das Carry Bit ist doch genau dafür gedacht, um
Mehrbyteoperationen einfach zu halten:

        mov     a, r2
        add     a, r4
        mov     r0, a
        mov     a, r3
        addc    a, r5
        mov     r, a
        ret

Das wars dann schon.
Die Subtraktion geht genau so, nur vor dem 1. "subb" kommt noch ein
"clr c"


Die Multiplikation geht einfacher mit dem "mul":

;r6,r7 = r6,r7 * r4,r5 (high,low)

mul16:  mov     a, r7
        mov     r3, a
        mov     b, r5
        mul     ab      ;l1*l2
        mov     r7, a
        mov     a, r5
        xch     a, b
        xch     a, r6
        mul     ab      ;h1*l2
        add     a, r6
        mov     r6, a
        mov     a, r4
        mov     b, r3
        mul     ab      ;l1*h2
        add     a, r6
        mov     r6, a
        ret



Peter

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.