为什么要认为是 rsp+16 呢? 64位的函数调用,最好是找份调用约定来看看,看仔细、看明白了,反正是很烦琐、很无语的,不再似 32位那样易于理解。 rbp 和 rsp,由于程序里,rsp 是随时可能变化的,所以,为了方便理解,通常以 rbp 来作为参数和局部变量的基址;如果用 rsp,rbp 可以释放出来作为通用寄存器,但随着栈操作 rsp 可能发生变化,对同一内容的引用 rsp+?? 里的偏址就要随时变化,人工不容易看清。 这个代码,是标准化了的函数形式,从汇编角度来看,有太多的多余的、不必要的操作,所以,不能太过考究。经优化选项后,会有不同的,往往会更精简、更高效。
21,458
社区成员
41,603
社区内容
加载中
试试用AI创作助手写篇文章吧