📄 setjmp.s
字号:
# setjmp/longjmp for mt.# # The jmpbuf looks like this:# # Register jmpbuf offset# R0 --- --# R1 0x4 4# R2 0x8 8# R3 0xc 12# R4 0x10 16# R5 0x14 20# R6 0x18 24# R7 0x1c 28# R8 0x20 32# R9 ---- --# R10 ---- --# R11 0x2c 44# R12 0x30 48# R13 0x34 52# R14 0x38 56# R15 0x3c 60## R1 contains the pointer to jmpbuf .text .global setjmp .type setjmp ,@functionsetjmp: stw r1, r1, #4 or r0, r0, r0 stw r2, r1, #8 or r0, r0, r0 stw r3, r1, #12 or r0, r0, r0 stw r4, r1, #16 or r0, r0, r0 stw r5, r1, #20 or r0, r0, r0 stw r6, r1, #24 or r0, r0, r0 stw r7, r1, #28 or r0, r0, r0 stw r8, r1, #32 or r0, r0, r0 stw r11, r1, #44 or r0, r0, r0 stw r12, r1, #48 or r0, r0, r0 stw r13, r1, #52 or r0, r0, r0 stw r14, r1, #56 or r0, r0, r0 stw r15, r1, #60 jal r0, r14 addi r11, r0, #0.Lend1: .size setjmp,.Lend1-setjmp .global longjmp .type longjmp,@functionlongjmp: or r9, r1, r1 or r11, r2, r2 ldw r1, r1, #4 or r0, r0, r0 ldw r2, r1, #8 or r0, r0, r0 ldw r3, r1, #12 or r0, r0, r0 ldw r4, r1, #16 or r0, r0, r0 ldw r5, r1, #20 or r0, r0, r0 ldw r6, r1, #24 or r0, r0, r0 ldw r7, r1, #28 or r0, r0, r0 ldw r8, r1, #32 or r0, r0, r0 ldw r12, r1, #48 or r0, r0, r0 ldw r13, r1, #52 or r0, r0, r0 ldw r14, r1, #56 or r0, r0, r0 ldw r15, r1, #60 brne r0, r11, .L01 or r0, r0, r0 addi r11, r0, #1.L01: jal r0, r14 or r0, r0, r0.Lend2: .size longjmp,.Lend2-longjmp2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -