avr.txt: last question added(cyles,bytes....)
authorManfred <xzarion@l0725898.(none)>
Mon, 18 Oct 2010 11:32:03 +0000 (13:32 +0200)
committerManfred <xzarion@l0725898.(none)>
Mon, 18 Oct 2010 13:28:29 +0000 (15:28 +0200)
1_isacmp/avr.tex

index fa5decfdf39ab7a428b335c1674bea6999c099ad..0748fdf3f1a1cf7512d24965ba74fb0322ce7fc4 100644 (file)
@@ -23,7 +23,7 @@ Umgesetzt wird das ganze durch Instructionen die haupts\"achlich in einem Zyklus
 \subsection{W\"unsche und gute Features}
 Folgende zwei Punkte finde ich besonders positiv:
 \begin{itemize}
-       \item Das getrennte Compare-Branch Konzept find ich sehr angenehm, da man die weiligen Optionen nach Wunsch kombinieren kann.
+       \item Das getrennte Compare-Branch Konzept find ich sehr angenehm, da man die jeweiligen Optionen nach Wunsch kombinieren kann.
        \item Das man viele Bitoperationen (auch Vergleiche f\"ur Conditional Jumps) zur Verf\"ugung hat.
 \end{itemize}
 Negativ auffallen ist mir:
@@ -44,31 +44,49 @@ subroutine:
 ld r28,"Adresse mit zu verwendenden Arraydaten"
 ld r29,"Adresse mit zu verwendenden Arraydaten"
 
-adiw r25:r124,1
+adiw r25:r24,1
+ld  r10,r24
+ld  r11,r25
 subi r29:r28,2
-ldi r1,0x00
-ldi r2;0x00
+ldi r1,0x01
+ldi r2,0x01
 ldi r20,0x00
 ldi r21,0x00
+cp  r10,r1
+cpc r11,r2
+brlt exit
+
+ldi r1,0x00
+ldi r2,0x00
+
 
 for:
-adiw r2:r1,1
+adiw r2:r1,1 # 2 c 2 b
 adiw r29:r28,2
 
-ldd r24,Y
+ldd r24,Y # 2 c 2 b
 ldd r25,Y+1
 
-add r20,r24
-adc r21,r25
+add r20,r24 # 1 c 2 b
+adc r21,r25 # 1 c 2 b
 
-cp  r1,r10
-cpc r2,r11
-brlt for
+cp  r1,r10 # 1 c 2 b
+cpc r2,r11 # 1 c 2 b
+brlt for # 1 c if false 2 c if true 2 b
 
 ld r24,r20
 ld r25,r21
+exit:
 ret
 \end{lstlisting}
 
+Daraus ergibt sich:
+\begin{itemize}
+       \item Anzahl Instructionen: 9
+       \item Anzahl Zyklen: wenn Branch false 13 sonst 14
+       \item Anzahl Bytes: 18
+\end{itemize}
+
+