在反編譯程序我翻過凸輪以下指令:無用存儲和負載
890c: e50b0008 str r0, [fp, #-8]
8910: e50b100c str r1, [fp, #-12]
8914: e51b0008 ldr r0, [fp, #-8]
8918: e51b100c ldr r1, [fp, #-12]
什麼是最後2 LDR的地步?
在反編譯程序我翻過凸輪以下指令:無用存儲和負載
890c: e50b0008 str r0, [fp, #-8]
8910: e50b100c str r1, [fp, #-12]
8914: e51b0008 ldr r0, [fp, #-8]
8918: e51b100c ldr r1, [fp, #-12]
什麼是最後2 LDR的地步?
編譯器在未完全優化時會發出這些消息。像
a = 0;
return a;
當編譯調試時,會看起來有點像這樣。
回覆:評論:在這種情況下,最有可能是調用序列
a = something; //compiler: calculate in register, write out to memory
b = something_else; //compiler: calculate in register, write out to memory
Func(a, b); //compiler: pick up from memory, branch and link to the function
下一條指令是一個「bl」,它可以解釋這一切。 – mathk