In c8051f120 controller, i use merge sorting technique of one of my application in a project. but problem is local variable acting as global variables within a function(auto keyword). following is a example of merge sorting. divide(int left,int right) { int mid; if(left<right) { mid=(left+right)/2; divide(left,mid); divide(mid+1,right); } }
I rather heavily doubt the correctness of that assessment.
Most probably an effect of the variable overlaying that the Keil C51 package uses by default.
Which is why, "The 8051 is bad at recursion"
http://www.keil.com/support/man/docs/c51/c51_le_reentrantfuncs.htm
Oh dear.