📄 _longjmp.s
字号:
// 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -