前言:记录一下过程调用中的一些坑,方便后续查阅。
我老是说这个图,这个图有一个比较坑的地方。就是 6 中寄存器的保存。
在被调用之前,根据约定:
- 要保留三个寄存器:
%eax
%ecx
%edx
如果在调用函数内部,如果有要用到 %ebx
%esi
%edi
的时候,一定要先保存。因为这些寄存器都是通用的,可能保留着之前的值。返回的时候,要恢复。
前言:记录一下过程调用中的一些坑,方便后续查阅。
我老是说这个图,这个图有一个比较坑的地方。就是 6 中寄存器的保存。
在被调用之前,根据约定:
%eax
%ecx
%edx
如果在调用函数内部,如果有要用到 %ebx
%esi
%edi
的时候,一定要先保存。因为这些寄存器都是通用的,可能保留着之前的值。返回的时候,要恢复。