ARM 发表于 2016-8-31 16:29:34

ARM初试牛刀二

大家都是高手 我就不贴C代码了
直接上汇编代码
; 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,
MOV   R0, #5
MOV   R1, #6
BL      add
STR   R0,
LDR   R0, =a56D       ; "5+6=%d\r\n"
LDR   R1,
BL      printf
MOV   R3, #0
MOV   R0, R3
SUB   SP, R11, #4
LDMFD   SP!, {R11,PC}
; End of function main
现在开始分析这段汇编代码
看下面这段代码
STMFD   SP!, {R11,LR}
ADD   R11, SP, #4
SUB   SP, SP, #8
本人觉得 最后一句SUB SP, SP, #8 没有必要分配8个字节 从这段汇编上看分配4个字节足矣,因为他只有一个接受变量var_8
本人觉得 修改为SUB SP, SP, #4 最恰当
其他代码讲解 我在第一篇帖子中已经分析过了

欢迎大家一起讨论
页: [1]
查看完整版本: ARM初试牛刀二