Esto no es un Kernel para empezar, es apenas un loader primigenio.
GDT_END - GDT era correcto (da el tamaño justo que tiene que ser numero de descriptores * 8 - tamaño de cada descriptor -) con palabra (dw) como bien dijo posman que debe ser.
El problema que tenes ahora es con el salto y es muy simple de solucionar, el ensamblador asume que el origen de tu programa va a ser 0000:0000h cuando en realidad sera 0000:7C00h, poniendo esta linea al principio hace lo esperado (un bucle infinito):
El salto correcto es:
PD. Supongo que ya entendiste parte de lo que te dije en el otro foro.