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

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