02.05.2013 Aufrufe

beginner_de

beginner_de

beginner_de

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!