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.
pls check out the values you pass to the segment registers. May be you miss to put some value onto the stack or to return some value? May be you have some junk in a field?
The gdt limit is calculated like this:
(Nr of Descriptors * -1.
If you have 8 descriptors in your gdt, you'll have a limit of 8*8 (=64) -1 = 63 (hex 3f).
If you want to increase the limit: add descriptors to the gdt. This is the only valid way to increase limit of gdt.