Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
When you put 1_0010_0000 into a longword you get 10_0000. So what you have to do, is to get this overflow. By setting the GDT.base to 6010_0000. Not GDTR. Do you understand how this trick works?
Btw, you don?t access 4Gb with this technique, all it is useful for is to allow a kernel linked at 0xa000_0000 init paging.