¿Qué bits en la palabra etiqueta x87 modifica FFREE ST (i)?
Este ejemplo fue escrito en NASM:
section .bss
var28: resb 28
section .text
_main:
; Initialize
finit
fldpi
; Read Tag Word
fstenv [var28]
mov ax, [var28 + 8] ; move the Tag Word to ax
En este punto ax = 0011 1111 1111 1111, lo que significa ST7 = 00 (válido), y el resto es 11 (vacío).
El resto del código:
; FFREE ST(i)
ffree ST7 ; Sets tag for ST(i) to empty.
; Read Tag Word
fstenv [var28]
mov ax, [var28 + 8] ; move the Tag Word to ax
En este punto ax = 0011 1111 1111 1111 también.
Mi pregunta es, no debería ser ax =1111 1111 1111 1111?