64位搞得是复杂,那个 +22 都不知道什么意思。 s1=2065 的那两个例子,怀疑是随便说的,不是针对这个代码,尽管这个汇编里的功能是普适的。大致意思就是为了让这 n 个单元能对齐,前面定义的数据如果不对齐时,怎么让它对齐了,即补上 e1 的空;分配到最后的 rsp 也一样地要对齐了,就是 e2 来补空。
esp/rsp只要不进行push/pop,作为普通寄存器用,可以存储任意值,不会导致异常。
%rsp 需要对齐的吧,否则可能会出现异常致程序崩溃的;当然了,你尽可以 sub $1, %rsp 但在对齐前最好别使用堆栈。
21,459
社区成员
41,601
社区内容
加载中
试试用AI创作助手写篇文章吧