Optimierung einer Softwarebibliothek für sicherheitsrelevante
Optimierung einer Softwarebibliothek für sicherheitsrelevante
Optimierung einer Softwarebibliothek für sicherheitsrelevante
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
2 Grundlagen 20<br />
BLX(Branch with Link Exchange) und BL(Branch Exchange) haben die gleiche Funktionalität<br />
wie die B und BL, außerdem werden sie benutzt, um zwischen den ARM- und<br />
THUMB-Instruktionssatzen zu wechseln (Abbildung 12).<br />
Abbildung 12: Sprungbefehle BLX und BL [MAR06]<br />
Datenverarbeitende Befehle (Data Processing Instructions)<br />
Wie ein datenverarbeitender Befehl aussieht, zeigen die Abbildungen 13 und 14:<br />
Abbildung 13: Data Processing Instruction [MAR06]<br />
Abbildung 14: Data Processing Instruction [ARMREF]<br />
Jeder Befehl hat zwei Operanden und schreibt das Ergebnis in ein Register. Der erste<br />
Operand muss immer ein Register sein, der zweite hingegen ein Register oder eine Variable.<br />
Als Zusatz gibt es einen Barrel Shifter, dieser erlaubt es, den zweiten Operanden<br />
bitweise zu shiften. Das „S“-Bit wird benutzt um Statusflags zu kontrollieren. Die datenverarbeitenden<br />
Befehle sind in der Tabelle 2 aufgelistet.<br />
Zum Beispiel könnte folgende Anweisung:<br />
if (z==1) R1 = R2 + (R3 * 4)