mikrocontroller.net

Forum: Projekte & Code Multiplikation


Autor: Org (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ich hab einen Code für PIC16F88 gesucht um zwei 8-Bit Register mit
einander zu Multiplizieren.
Hab diesen auch gefunden und sehr erfolgreich getestet, nur verstehe
ich nicht wie dieser Funktioniert.
Kann mir da vl wer helfen ?

;********   Define a macro for adding & right shifting  **
mult    MACRO   bit               ;Begin macro
        BTFSC   mulplr,bit
        ADDWF   H_byte,Same
        RRF     H_byte,Same
        RRF     L_byte,Same
        ENDM                      ;End of macro

;********   Multiplier Routine  **********************
multiply
  CLRF    H_byte
  CLRF    L_byte
  MOVF    mulcnd,W            ;move the multiplicand to W reg.
  BCF     STATUS,C        ;clear the Carry bit in the STATUS Reg.
  mult    0
  mult    1
  mult    2
  mult    3
  mult    4
  mult    5
  mult    6
  mult    7

  RETLW   0
********************************

......
.....

  MOVLW  XXX
  MOVWF  mulplr
  MOVLW  XXX
  MOVWF  mulcnd

  CALL  multiply

und dann is das ergebnis in H_byte und L_byte


nur wie ?

Autor: Ale (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
I'll will explain in english:

That multiplies in binary digit to digit:

Result = A * B = A.0 * B + (A.1 * B) << 1 + (A.2 * B) << 1 + ...

but does so using addition and shift, and testing every bit, if it is
set, adds B, if it is not, do not.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.