_longjmp.s
来自「KPIT GNU Tools is a set of GNU developme」· S 代码 · 共 32 行
S
32 行
// our buffer looks like:/ eax,ebx,ecx,edx,esi,edi,esp,ebp,pc// _longjmp is called with two parameters: jmp_buf*,int/ jmp_buf* is at 4(%esp), int is at 8(%esp)/ retaddr is, of course, at (%esp) .globl _longjmp .globl longjmp_longjmp:longjmp: movl 4(%esp), %ebx / address of buf movl 8(%esp), %eax / store return value movl 24(%ebx), %esp / restore stack movl 32(%ebx), %edi/ Next line sets up return address. movl %edi, 0(%esp) movl 8(%ebx), %ecx movl 12(%ebx), %edx movl 16(%ebx), %esi movl 20(%ebx), %edi movl 28(%ebx), %ebp movl 4(%ebx), %ebx testl %eax,%eax jne bye incl %eax / eax hold 0 if we are herebye: ret
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?