大家都是高手 我就不贴C代码了
直接上汇编代码
[mw_shl_code=asm,true]; int __cdecl main(int argc, const char **argv, const char **envp)
EXPORT main
main
var_8= -8
STMFD SP!, {R11,LR}
ADD R11, SP, #4
SUB SP, SP, #8
MOV R3, #0
STR R3, [R11,#var_8]
MOV R0, #5
MOV R1, #6
BL add
STR R0, [R11,#var_8]
LDR R0, =a56D ; "5+6=%d\r\n"
LDR R1, [R11,#var_8]
BL printf
MOV R3, #0
MOV R0, R3
SUB SP, R11, #4
LDMFD SP!, {R11,PC}
; End of function main[/mw_shl_code]
现在开始分析这段汇编代码
看下面这段代码
[mw_shl_code=asm,true]STMFD SP!, {R11,LR}
ADD R11, SP, #4
SUB SP, SP, #8[/mw_shl_code]
本人觉得 最后一句SUB SP, SP, #8 没有必要分配8个字节 从这段汇编上看分配4个字节足矣,因为他只有一个接受变量var_8
本人觉得 修改为[mw_shl_code=applescript,true]SUB SP, SP, #4[/mw_shl_code] 最恰当
其他代码讲解 我在第一篇帖子中已经分析过了
欢迎大家一起讨论
|