1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
.global jump_userspace .type jump_userspace, @function jump_userspace: movw $0x23, %ax movw %ax, %ds movw %ax, %es movw %ax, %fs movw %ax, %gs movl %esp, %eax pushl $0x23 pushl %eax pushf push $0x1B pushl $start_init pushl %esp call set_kernel_esp addl $4, %esp iret