beginner_de
beginner_de
beginner_de
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Avr-Asm-Tutorial S. 103<br />
brcc NoInc ; Wenn Carry nicht gesetzt, springe<br />
inc Res3 ; erhoehe Ergebnis-Byte 3<br />
NoInc:<br />
Das Ergebnis in R4:R3:R2 ist hex 2625A9, was <strong>de</strong>zimal<br />
2.500.000 entspricht (wie je<strong>de</strong>r sofort weiß), und das ist<br />
korrekt.<br />
Der Zykluszähler zeigt nach <strong>de</strong>r Multiplikation auf 10, bei<br />
1 MHz Takt sind gera<strong>de</strong> mal 10 Mikrosekun<strong>de</strong>n vergangen.<br />
Sehr viel schneller als die Software-Multiplikation!<br />
Hardware Multiplikation einer 16- mit einer 16-bit-Binärzahl<br />
Nun, da wir das Prinzip verstan<strong>de</strong>n haben, sollte es einfach sein die 16-mal-16-Multiplikation zu erledigen.<br />
Das Ergebnis benötigt jetzt vier Bytes (Res4:Res3:Res2:Res1, untergebracht in<br />
R5:R4:R3:R2). Die Formel lautet:<br />
m1 * m2 =<br />
(256*m1M + m1L) * (256*m2M + m2L) =<br />
65536*m1M*m2M + 256*m1M*m2L + 256*m1L*m2M + m1L*m2L<br />
Offensichtlich sind jetzt vier Multiplikationen<br />
zu erledigen. Wir beginnen mit <strong>de</strong>n bei<strong>de</strong>n einfachsten,<br />
<strong>de</strong>r ersten und <strong>de</strong>r letzten: ihre Ergebnisse<br />
können einfach in die Ergebnisregister kopiert<br />
wer<strong>de</strong>n. Die bei<strong>de</strong>n mittleren Multiplikationen<br />
in <strong>de</strong>r Formel müssen zu <strong>de</strong>n bei<strong>de</strong>n mittleren<br />
Ergebnisregistern addiert wer<strong>de</strong>n. Mögliche<br />
Überläufe müssen in das Ergebnisregister<br />
Res4 übertragen wer<strong>de</strong>n, wofür hier ein einfacher<br />
Trick angewen<strong>de</strong>t wird, <strong>de</strong>r einfach zu verstehen sein dürfte. Die Software:<br />
;<br />
; Test Hardware Multiplikation 16 mal 16<br />
;