branch exchange (BX)

consider this simple code

int main() {
        /* nop */
        return 10;
}

produces this: image

It's almost always returning from a function, like ret in some other ISAs like AArch64.

nice read:

why?