Bien, ayudando a otro usuario con otra duda aparecio el tema de los segmentos, ya sabia algo de ellos antes y leyendo los manuales mas aun, se que cada segmento tiene su funcion y algunos se concatenan con los registros.
Estaba haciendo pruebas en ring3, me fije de que todos los segmentos tienen el mismo valor menos el %cs, segun la formula que tiene la CPU para calcular los offset multiplica el valor del segmento por 16 y lo suma al offset, bien hice una prueba, %esp el stack esta concatenado con el segmento %ss, copie el contenido de %esp con el segmento %cs y el valor es el mismo que con %ss, a que se debe si %cs tiene otro valor que %ss?
Se que %esp va con %ss, pero la instruccion me la acepta y me creo otro opcode si la escribo con el %cs, bueno esa es la pregunta, se ignora y se calcula con %ss, porque apuntan al mismo offset.
Un saludo.