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. 111<br />
; - Bei Binärzahlen ist die Lage im Registerbereich nicht maßgebend, sie können auf-<br />
o<strong>de</strong>r<br />
; absteigend geordnet sein o<strong>de</strong>r getrennt im Registerraum liegen. Zu vermei<strong>de</strong>n ist eine<br />
; Zuordnung zu R0, rmp, ZH o<strong>de</strong>r ZL.<br />
; - Register rmp (Bereich: R16..R29) wird innerhalb <strong>de</strong>r Rechenroutinen benutzt, sein<br />
; Inhalt ist nach Rückkehr nicht <strong>de</strong>finiert.<br />
; - Das Registerpaar Z wird innerhalb von Routinen verwen<strong>de</strong>t. Bei <strong>de</strong>r Rückkehr ist sein<br />
; Inhalt abhängig vom Fehlerstatus <strong>de</strong>finiert.<br />
; - Einige Routinen verwen<strong>de</strong>n zeitweise Register R0. Sein Inhalt wird vor <strong>de</strong>r Rückkehr<br />
; wie<strong>de</strong>r hergestellt.<br />
; - Wegen <strong>de</strong>r Verwendung <strong>de</strong>s Z-Registers ist in je<strong>de</strong>m Fall die Hea<strong>de</strong>rdatei <strong>de</strong>s<br />
Prozessors<br />
; einzubin<strong>de</strong>n o<strong>de</strong>r ZL (R30) und ZH (R31) sind manuell zu <strong>de</strong>finieren. Wird die<br />
; Hea<strong>de</strong>rdatei o<strong>de</strong>r die manuelle Definition nicht vorgenommen, gibt es beim<br />
Assemblieren<br />
; eine Fehlermeldung o<strong>de</strong>r es geschehen rätselhafte Dinge.<br />
; - Wegen <strong>de</strong>r Verwendung von Unterroutinen muss <strong>de</strong>r Stapelzeiger (SPH:SPL bzw. SPL bei<br />
; mehr als 256 Byte SRAM) initiiert sein.<br />
;<br />
;<br />
;<br />
; ************* Überblick über die Routinen **********************<br />
; Routine Aufruf Bedingungen Rückkehr,Fehler<br />
; ----------------------------------------------------------------<br />
; AscToBin2 Z zeigt auf Been<strong>de</strong>t beim ersten 16-bit-Bin<br />
; erstes Zeichen, das nicht rBin1H:L,<br />
; ASCII- einer Dezimalziffer Überlauf-<br />
; Zeichen entspricht, über- fehler<br />
; liest Leerzeichen<br />
; und führen<strong>de</strong> Nullen<br />
; Asc5ToBin2 Z zeigt auf Benötigt exakt 5 16-bit-Bin<br />
; erstes gültige Ziffern, rBin1H:L,<br />
; ASCII- überliest Leerzei- Überlauf<br />
; Zeichen chen und Nullen o<strong>de</strong>r ungül-<br />
; tige Ziffern<br />
; Bcd5ToBin2 Z zeigt auf Benötigt exakt 5 16-bit-Bin<br />
; 5-stellige gültige Ziffern rBin1H:L<br />
; BCD-Zahl Überlauf<br />
; o<strong>de</strong>r ungül-<br />
; tige Ziffern<br />
; Bin2ToBcd5 16-bit-Bin Z zeigt auf erste 5-digit-BCD<br />
; in rBin1H:L BCD-Ziffer (auch ab Z, keine<br />
; nach Rückkehr) Fehler<br />
; Bin2ToHex4 16-bit-Bin Z zeigt auf erste 4-stellige<br />
; in rBin1H:L Hex-ASCII-Stelle, Hex-Zahl ab<br />
; Ausgabe A...F Z, keine<br />
; Fehler<br />
; Hex4ToBin2 4-digit-Hex Benötigt exakt vier 16-bit-Bin<br />
; Z zeigt auf Stellen Hex-ASCII, rBin1H:L,<br />
; erste Stelle akzeptiert A...F und ungültige<br />
; a...f Hex-Ziffer<br />
; ******************* Umwandlungsco<strong>de</strong> ***********************<br />
;<br />
; Paket I: Von ASCII bzw. BCD nach Binär<br />
; AscToBin2<br />
; =========<br />
; wan<strong>de</strong>lt eine ASCII-kodierte Zahl in eine 2-Byte-/16-Bit- Binärzahl um.<br />
; Aufruf: Z zeigt auf erste Stelle <strong>de</strong>r umzuwan<strong>de</strong>ln<strong>de</strong>n Zahl, die Umwandlung wird bei <strong>de</strong>r<br />
; ersten nicht <strong>de</strong>zimalen Ziffer been<strong>de</strong>t.<br />
; Stellen: Zulässig sind alle Zahlen, die innerhalb <strong>de</strong>s Wertebereiches von 16 Bit binär<br />
; liegen (0..65535).<br />
; Rückkehr: Gesetztes T-Flag im Statusregister zeigt Fehler an.<br />
; T=0: Zahl in rBin1H:L ist gültig, Z zeigt auf erstes Zeichen, das keiner<br />
Dezimalziffer<br />
; entsprach<br />
; T=1: Überlauffehler (Zahl zu groß), rBin1H:L un<strong>de</strong>finiert, Z zeigt auf Zeichen, bei