Dump of assembler code for function set_gdt_cs: 0xffffffffffe02ae0 <+0>: push $0x1 0xffffffffffe02ae2 <+2>: lea 0x2(%rip),%rax # 0xffffffffffe02aeb 0xffffffffffe02ae9 <+9>: push %rax => 0xffffffffffe02aea <+10>: lret 0xffffffffffe02aeb <+11>: mov $0x2,%ax 0xffffffffffe02aef <+15>: mov %eax,%ds 0xffffffffffe02af1 <+17>: mov %eax,%es 0xffffffffffe02af3 <+19>: mov %eax,%fs 0xffffffffffe02af5 <+21>: mov %eax,%gs 0xffffffffffe02af7 <+23>: mov %eax,%ss 0xffffffffffe02af9 <+25>: ret (it continues even though we return)