s3e: fix build break
[calu.git] / 1_isacmp / avr.tex
index 7af4a93dd57acc548ea0164de8b913fd2dccbe31..5f1646457f5d1197c913b13ce9c74b09e02f4946 100644 (file)
@@ -30,7 +30,7 @@ Folgende zwei Punkte finde ich besonders positiv:
                so, dass ziemlich alles was gebraucht wird abgedeckt ist.
        \item Das man viele Bitoperationen (auch Vergleiche f\"ur Conditional Jumps) zur Verf\"ugung hat.
 \end{itemize}
-Negativ auffallen ist mir:
+Negativ aufgefallen ist mir:
 \begin{itemize}
        \item Es gibt keinen \texttt{add} immediate Befehl um eine Konstante zu einem Register hinzuzuf\"ugen, jedoch um eine Konstante zu einem Word hinzuzuf\"ugen.
 \end{itemize}
@@ -44,37 +44,36 @@ Ich gehe von folgenden Vorbedingungen aus:
 \end{itemize}
 \begin{lstlisting}[caption=AVR Code]
 subroutine:
-       mov r28,"Adresse mit zu verwendenden Arraydaten"
-       mov r29,"Adresse mit zu verwendenden Arraydaten"
-
-       adiw r25:r24,1
-       mov  r10,r24
+       //mov r28,"Adresse mit zu verwendenden Arraydaten"
+       //mov r29,"Adresse mit zu verwendenden Arraydaten"
+       add r24,r24
+       adc r25,r25
+       add r24,r28
+       adc r25,r29
+       mov r10,r24
        mov r11,r25
-       subi r29:r28,2
-       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
+       cp  r10,r28
+       cpc r11,r29
+       breq exit
 
 for:
-       adiw r2:r1,1 # 2 c 2 b
-       adiw r29:r28,2
 
-       ldd r24,Y # 2 c 2 b
+       ldd r24,Y
        ldd r25,Y+1
 
-       add r20,r24 # 1 c 2 b
-       adc r21,r25 # 1 c 2 b
+       add r20,r24
+       adc r21,r25
+
+       adiw r29:r28,2
 
-       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
+       cp  r28,r10
+       cpc r29,r11
+       brlt for
 
        mov r24,r20
        mov r25,r21
@@ -83,7 +82,7 @@ exit:
 \end{lstlisting}
 Daraus ergibt sich:
 \begin{itemize}
-       \item Anzahl Instructionen: 9
-       \item Anzahl Zyklen: wenn Branch \texttt{false} 13 sonst 14
-       \item Anzahl Bytes: 18
+       \item Anzahl Instructionen: 8
+       \item Anzahl Zyklen: wenn Branch \texttt{false} 11 sonst 12
+       \item Anzahl Bytes: 16
 \end{itemize}