First of all it ensures that `ds` and `es` segment registers point to the same address and enables interrupts with `sti` instruction:
First of all it ensures that `ds` and `es` segment registers point to the same address and disable interrupts with `cld` instruction:
```assembly
movw %ds, %ax
movw %ax, %es
sti
cld
```
As I wrote above, grub2 loads kernel setup code at `0x10000` address and `cs` at `0x1020` because execution doesn't start from the start of file, but from: