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.
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.