Was macht bx lr in der ARM-Assemblersprache?

8

Ich kann mir nicht vorstellen, was bx lr macht und wie es sich von bl (label) unterscheidet. Ich weiß, dass bl (label) die Rückgabeadresse dieser Funktion im Linkregister speichert, aber ich weiß nicht, was bx lr tut.

    
user2177940 23.11.2014, 02:09
quelle

1 Antwort

16

bx steht für Zweig und Austausch-Befehlssatz Dies bedeutet, dass der Prozessor den nächsten Befehl entsprechend dem LSB (niederwertigstes Bit) der Adresse, zu der verzweigt werden soll, als ARM oder als Daumen behandelt.

Da lr normalerweise die Rückgabeadresse enthält, bedeutet dies, dass es sich um eine Rückgabe von einer Funktion handelt. Wenn das lsb von lr 1 ist, behandelt es den Code unter dieser Adresse als thumb, sonst wird es behandle es als ARM.

    
MByD 23.11.2014 02:15
quelle

Tags und Links