I\'ve noticed that a lot of calling conventions insist that [e]bx be preserved for the callee.
Now, I can understand why they\'d preserve something like [e]sp or [e]
One of the main reasons, certainly for the i386 ELF ABI, is that ebx holds the address of the global offset table (GOT) register for position-independent code (PIC). See 3-35 of the specification for the details. It would be disruptive in the extreme, if, say, shared library code had to restore the GOT after every function call return.