Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Laderegler Test Tueftler Seite

K
Zeile 72: Zeile 72:
 
|+ '''Tabelle: Constraints und ihre Bedeutung'''
 
|+ '''Tabelle: Constraints und ihre Bedeutung'''
 
|- {{Hintergrund1}}
 
|- {{Hintergrund1}}
! Contraint || Erklärung || Wertebereich
+
! Contraint || Register || Wertebereich
 +
|rowspan="13"| 
 +
! Contraint || Konstante || Wertebereich
 
|-
 
|-
 
|<tt>a</tt>||einfache obere Register||<tt>r16</tt>...<tt>r23</tt>
 
|<tt>a</tt>||einfache obere Register||<tt>r16</tt>...<tt>r23</tt>
 +
|<tt>G</tt>||Floatingpoint-Konstante ||<tt>0.0</tt>
 
|-
 
|-
 
|<tt>b</tt>||Pointer-Register ||<tt>y</tt>, <tt>z</tt>
 
|<tt>b</tt>||Pointer-Register ||<tt>y</tt>, <tt>z</tt>
 +
|<tt>i</tt>||Konstante ||&nbsp;
 
|-
 
|-
 
|<tt>d</tt>||obere Register ||<tt>r16</tt>...<tt>r31</tt>
 
|<tt>d</tt>||obere Register ||<tt>r16</tt>...<tt>r31</tt>
 +
|<tt>I</tt>||positive 6-Bit-Konstante ||0...63
 
|-
 
|-
 
|<tt>e</tt>||Pointer-Register ||<tt>x</tt>, <tt>y</tt>, <tt>z</tt>
 
|<tt>e</tt>||Pointer-Register ||<tt>x</tt>, <tt>y</tt>, <tt>z</tt>
|-
 
|<tt>G</tt>||Floatingpoint-Konstante ||<tt>0.0</tt>
 
|-
 
|<tt>i</tt>||Konstante ||&nbsp;
 
|-
 
|<tt>I</tt>||positive 6-Bit-Konstante ||0...63
 
|-
 
 
|<tt>J</tt>||negative 6-Bit Konstante ||<tt>-</tt>63...0
 
|<tt>J</tt>||negative 6-Bit Konstante ||<tt>-</tt>63...0
 
|-
 
|-
 +
|<tt>l</tt>||untere Register ||<tt>r0</tt>...<tt>r15</tt>
 
|<tt>K</tt>||Konstante ||2
 
|<tt>K</tt>||Konstante ||2
 
|-
 
|-
 +
|<tt>q</tt>||Stack-Pointer ||<tt>SPH:SPL</tt>
 
|<tt>L</tt>||Konstante ||0
 
|<tt>L</tt>||Konstante ||0
 
|-
 
|-
|<tt>l</tt>||untere Register ||<tt>r0</tt>...<tt>r15</tt>
+
|<tt>r</tt>||ein Register ||<tt>r0</tt>...<tt>r31</tt>
|-
+
 
|<tt>M</tt>||8-Bit Konstante ||0...255
 
|<tt>M</tt>||8-Bit Konstante ||0...255
 
|-
 
|-
 +
|<tt>t</tt>||Scratch-Register ||<tt>r0</tt>
 
|<tt>N</tt>||Konstante ||<tt>-</tt>1
 
|<tt>N</tt>||Konstante ||<tt>-</tt>1
 
|-
 
|-
 +
|<tt>w</tt>||Obere Register-Paare ||<tt>r24</tt>, <tt>r26</tt>, <tt>r28</tt>, <tt>r30</tt>
 
|<tt>O</tt>||Konstante ||8, 16, 24
 
|<tt>O</tt>||Konstante ||8, 16, 24
 
|-
 
|-
 +
|<tt>x</tt>||Pointer-Register X ||<tt>x</tt> (<tt>r27:r26</tt>)
 
|<tt>P</tt>||Konstante ||1
 
|<tt>P</tt>||Konstante ||1
|-
 
|<tt>q</tt>||Stack-Pointer ||<tt>SPH:SPL</tt>
 
|-
 
|<tt>r</tt>||ein Register ||<tt>r0</tt>...<tt>r31</tt>
 
|-
 
|<tt>t</tt>||Scratch-Register ||<tt>r0</tt>
 
|-
 
|<tt>w</tt>||Obere Register-Paare ||<tt>r24</tt>, <tt>r26</tt>, <tt>r28</tt>, <tt>r30</tt>
 
|-
 
|<tt>x</tt>||Pointer-Register X ||<tt>x</tt> (<tt>r27:r26</tt>)
 
 
|-
 
|-
 
|<tt>y</tt>||Pointer-Register Y ||<tt>y</tt> (<tt>r29:r28</tt>)
 
|<tt>y</tt>||Pointer-Register Y ||<tt>y</tt> (<tt>r29:r28</tt>)
 +
|colspan="3"|&nbsp;
 
|-
 
|-
 
|<tt>z</tt>||Pointer-Register Z ||<tt>z</tt> (<tt>r31:r30</tt>)
 
|<tt>z</tt>||Pointer-Register Z ||<tt>z</tt> (<tt>r31:r30</tt>)
 +
|colspan="3"|&nbsp;
 
|}
 
|}
 
</center>
 
</center>

Version vom 1. März 2006, 14:38 Uhr

Baustelle.gif An diesem Artikel arbeitet gerade Mitglied SprinterSB.

Am besten momentan noch keine gravierenden Ergänzungen / Änderungen vornehmen.

Dieser Hinweis verschwindet wenn der Autor soweit ist. Sollte dieser Hinweis länger als drei Tage auf einer Seite sein, bitte beim Autor SprinterSB per PM / Mail oder Forum nachfragen ob er vergessen wurde.

Tabelle: vordefinierte Bezeichner/Makros
Bezeichner Bedeutung
__SP_L__ unteres Byte des Stack-Pointers, für in bzw. out
__SP_H__ oberes Byte des Stack-Pointers, für in bzw. out
__SREG__ Status-Register, für in bzw. out
__tmp_reg__ ein Register zur temporären Verwendung (r0)
__zero_reg__ ein Register, das 0 enthält (r1)
lo8(const) die unteren 8 Bit der Konstanten const
hi8(const) Bits 8...15 der Konstanten const
hlo8(const) Bits 16...23 der Konstanten const
hhi8(const) Bits 24...31 der Konstanten const
Tabelle: asm-Platzhalter und ihre Modifier, Sonderzeichen
Platzhalter wird ersetzt durch
%n Wird ersezt durch Argument n mit n = 0...9
%An das erste (untere) Register des Arguments n (Bits 0...7)
%Bn das zweite Register des Arguments n (Bits 8...15)
%Cn das dritte Register des Arguments n (Bits 16...23)
%Dn das vierte Register des Arguments n (Bits 24...31)
%an Ausgabe des Arguments als Adress-Register,
also als x, y bzw. z. Erlaubt zusammen mit Constraint b, e, x, y, z
%~ wird auf AVR mit Flash bis max. 8kByte durch ein r ersetzt, ansonsten bleibt es leer.
Zum Aufbau von Sprungbefehlen, etwa "%~call foo"
%= eine für dieses asm-Template und die Übersetzungseinheit eindeutige Zahl.
Zum Aufbau lokaler Sprungmarken.
Sequenz wird ersetzt durch Sonderzeichen
%% das %-Zeichen selbst
\n ein Zeilenumbruch
zum Trennen mehrerer asm-Befehle/Zeilen
\t ein TAB, zur Übersichtlichkeit im erzeugten asm
\" ein " wird eingefügt
\\ das \-Zeichen selbst
Kommentar Beschreibung
; Text einzeiliger Kommentar bis zum Ende des Templates bzw. nächsten Zeilenumbruch
/* Text */ mehrzeiliger Kommentar wie in C
Tabelle: Constraints und ihre Bedeutung
Contraint Register Wertebereich   Contraint Konstante Wertebereich
a einfache obere Register r16...r23 G Floatingpoint-Konstante 0.0
b Pointer-Register y, z i Konstante  
d obere Register r16...r31 I positive 6-Bit-Konstante 0...63
e Pointer-Register x, y, z J negative 6-Bit Konstante -63...0
l untere Register r0...r15 K Konstante 2
q Stack-Pointer SPH:SPL L Konstante 0
r ein Register r0...r31 M 8-Bit Konstante 0...255
t Scratch-Register r0 N Konstante -1
w Obere Register-Paare r24, r26, r28, r30 O Konstante 8, 16, 24
x Pointer-Register X x (r27:r26) P Konstante 1
y Pointer-Register Y y (r29:r28)  
z Pointer-Register Z z (r31:r30)  
Tabelle: Übersicht AVR-Instruktionen und passende Constraints
Mnemonic Constraint   Mnemonic Constraint   Mnemonic Constraint   Mnemonic Constraint  
adc r,r add r,r adiw w,I and r,r
andi d,M asr r bclr I bld r,I
brbc I,label brbs I,label bset I bst r,I
cbi I,I cbr d,I com r cp r,r
cpc r,r cpi d,M cpse r,r dec r
elpm t,z eor r,r in r,I inc r
ld r,e ldd r,b ldi d,M lds r,label
lpm t,z lsl r lsr r mov r,r
movw r,r mul r,r neg r or r,r
ori d,M out I,r pop r push r
rol r ror r sbc r,r sbci d,M
sbi I,I sbic I,I sbiw w,I sbr d,M
sbrc r,I sbrs r,I ser d st e,r
std b,r sts label,r sub r,r subi d,M
swap r  

LiFePO4 Speicher Test