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