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}
\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
\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}
\begin{center}
\begin{tabular}{|l|c|c|c|c|c|}\hline
Anzahl & ARM & AVR & MCS-51 & PowerPC & SPEAR2 \\ \hline
- Instruktionen & 4 & 9 & 21 & 3 & 6 \\ \hline
- Zyklen & 8 & 13/14 & 30 & 3 & 7 \\ \hline
- Bytes & 16 & 18 & 32 & 12 & 12 \\ \hline
+ Instruktionen & 4 & 8 & 21 & 3 & 6 \\ \hline
+ Zyklen & 8 & 11/12 & 30 & 3 & 7 \\ \hline
+ Bytes & 16 & 16 & 32 & 12 & 12 \\ \hline
\end{tabular}
\caption{Vergleich der ISAs anhand der erfassten Kennwerte}
\label{cmp_tab}