发新帖

ARM初试牛刀二

[复制链接]
8250 0
大家都是高手 我就不贴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
最恰当
其他代码讲解 我在第一篇帖子中已经分析过了

欢迎大家一起讨论

举报 使用道具

回复
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表