利用标志位置位检测CPU型号的原理是什么?该怎么处理

利用标志位置位检测CPU型号的原理是什么?
Assembly code

; 386+ ?
    pushf
    pop   ax
    mov   dx,ax            ;保存原FLAGS寄存器的原第14位-NT标志位
    xor   ax,0x4000
    push  ax
    popf                ;取反原FLAGS寄存器第14位-NT标志位
    
    pushf
    pop   ax
    and   ax,0x4000        ;取出取反后恢复到FLAGS寄存器的第14位-NT标志位
    and   dx,0x4000        ;取出原FLAGS寄存器的第14位-NT标志位
    cmp   ax,dx            ;相减
    jnz   cpufine            ;不相等(置位成功)说明是386+的CPU
    mov   si,not386        ;相等(置位失败)说明是8086或者8088或者80286的CPU(16位处理器)
    call  print
    jmp   $
  cpufine:
    ...
    ...



看这段代码可以判断是通过第十四位标志位来检测CPU型号,思路是对该位置位,看置位是否成功。

第十四位标志位NT(嵌套任务标志位)是在80386以后的CPU才增加的一个位,在之前的CPU中虽然存在这个位,但是没有定义,
我是不是可以理解为,对于实际存在但是Intel没有定义的标志位寄存器置位是不是总是不能成功呢?
或者说这些位的值永远是固定的0或者1??

------解决方案--------------------
差不多是这样,不同CPU在实现上有细微差别