1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
.globl switch switch: mov $0x23, %ax mov %ax, %ds mov %ax, %es mov %ax, %fs mov %ax, %gs push $0x23 # push $0x80 pushf pop %rax #orl $0x200, %%eax mov $0xffffbfff, %rbx and %rbx, %rax push %rax push $0x1B push $0x0 iretq