web-dev-qa-db-fra.com

Que fait bx lr dans ARM langage d'assemblage?

Je n'arrive pas à comprendre ce que fait bx lr et comment il diffère de bl (label). Je sais que bl (label) stocke l'adresse de retour de cette fonction dans le registre de liens mais je ne sais pas ce que fait bx lr.

20
user2177940

bx signifie ensemble d'instructions de branchement et d'échange ce qui signifie que selon le lsb (bit le moins significatif) de l'adresse à laquelle se brancher, le processeur traitera l'instruction suivante comme ARM ou comme pouce.

Comme lr contient généralement l'adresse de retour, cela signifie qu'il s'agit d'un retour d'une fonction, et si le lsb de lr est 1, il traitera le code à cette adresse comme un pouce, sinon , il le traitera comme ARM.

23
MByD