tlsnopic.s
来自「俄罗斯高人Mamaich的Pocket gcc编译器(运行在PocketPC上)」· S 代码 · 共 55 行
S
55 行
.section ".tdata", "awT", @progbits .globl baz .hidden baz .globl var .hidden var2bar: .long 27baz: .long 29var: .long 31var2: .long 33 .text .globl fn .type fn,@functionfn: /* Main binary, no PIC. */1: movl 1b, %edx addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %edx /* foo can be anywhere in startup TLS. */ movl %gs:0, %eax subl foo@GOTTPOFF(%edx), %eax /* %eax now contains &foo. */ /* bar only in the main program. */ movl %gs:0, %eax subl $bar@TPOFF, %eax /* %eax now contains &bar. */ /* baz only in the main program. */ movl %gs:0, %ecx /* Arbitrary instructions in between. */ nop subl $baz@TPOFF, %ecx /* %ecx now contains &baz. */ /* var and var2 only in the main program. */ movl %gs:0, %ecx /* Arbitrary instructions in between. */ nop nop leal var@NTPOFF(%ecx), %eax /* Arbitrary instructions in between. */ nop leal var2@NTPOFF(%ecx), %edx /* foo can be anywhere in startup TLS. */ movl foo@INDNTPOFF, %eax movl %gs:(%eax), %eax /* %eax now contains foo. */ movl %gs:0, %eax addl foo@INDNTPOFF, %eax /* %eax now contains &foo. */ ret
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?