大家都是高手 我就不贴C代码了
直接上汇编代码
[Asm] 纯文本查看 复制代码 ; 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
现在开始分析这段汇编代码
看下面这段代码
[Asm] 纯文本查看 复制代码 STMFD SP!, {R11,LR}
ADD R11, SP, #4
SUB SP, SP, #8
本人觉得 最后一句SUB SP, SP, #8 没有必要分配8个字节 从这段汇编上看分配4个字节足矣,因为他只有一个接受变量var_8
本人觉得 修改为[AppleScript] 纯文本查看 复制代码 SUB SP, SP, #4 最恰当
其他代码讲解 我在第一篇帖子中已经分析过了
欢迎大家一起讨论
|