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]
This is a compromise between not saving any of the registers and saving them all. Either saving none, or saving all, could have been proposed, but either extreme leads to inefficiencies caused by copying the contents to memory (the stack). Choosing to allow some registers to be preserved and some not, reduces the average cost of a function call.