📄 setjmp.s
字号:
## arch/i386/setjmp.S## setjmp/longjmp for the i386 architecture### The jmp_buf is assumed to contain the following, in order:# %ebx# %esp# %ebp# %esi# %edi# <return address># .text .align 4 .globl setjmp .type setjmp, @functionsetjmp:#ifdef _REGPARM movl %eax,%edx#else movl 4(%esp),%edx#endif popl %ecx # Return address, and adjust the stack xorl %eax,%eax # Return value movl %ebx,(%edx) movl %esp,4(%edx) # Post-return %esp! pushl %ecx # Make the call/return stack happy movl %ebp,8(%edx) movl %esi,12(%edx) movl %edi,16(%edx) movl %ecx,20(%edx) # Return address ret .size setjmp,.-setjmp .text .align 4 .globl longjmp .type longjmp, @functionlongjmp:#ifdef _REGPARM xchgl %eax,%edx#else movl 4(%esp),%edx # jmp_ptr address movl 8(%esp),%eax # Return value#endif movl (%edx),%ebx movl 4(%edx),%esp movl 8(%edx),%ebp movl 12(%edx),%esi movl 16(%edx),%edi jmp *20(%edx) .size longjmp,.-longjmp
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -