在匯編中,用CALL調(diào)用子程序時(shí),處理器要保存當(dāng)前的狀態(tài).但具體地來(lái)說(shuō),它會(huì)保存哪些寄存器的值呢?
首先保存的應(yīng)該就是返回地址了吧,但這一過(guò)程可不可以用其它代碼來(lái)顯式的實(shí)現(xiàn)呢?也就是用push or mov等將它所做的工作代替,這樣可能嗎?
另外,C/C++中的局部變量是在哪里分配的呢?我記得好像是在堆上,但不太清楚了.這一過(guò)程在匯編中是如何實(shí)現(xiàn)的呢?看過(guò)了C的反匯編代碼還是沒(méi)搞清楚啊.