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 ?
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.