Para operaciones decimales, el lenguaje C puede usar operaciones de punto flotante, entonces, ¿cómo realiza el lenguaje ensamblador operaciones decimales?
st(i): representa un registro de punto flotante. Las operaciones de apilado y apilado de st(i) son funciones de st(i)
Src, dst, dest, op, etc. todos se refieren a los operandos de las instrucciones, src representa el operando de origen, dst/dest representa el operando de destino
mem8, mem16, mem32, mem64 , mem80, etc. son números de operaciones de memoria que se pueden utilizar en la memoria. mem32, mem64, mem80, etc. representan el operando de memoria, y el siguiente valor representa el número de dígitos de memoria del operando (8 bits es un byte)
x <- y significa poner el valor de y en x, por ejemplo, st(0) <- st(0) - st(1) significa poner el valor de st(0) - st(1) en el registro de punto flotante st(0)
1. p>
1. Transferencia constante de datos e instrucciones de operación
Formato de instrucción Significado de la instrucción Operación realizada
FLD src a st(0) st(0) <- src (mem32/mem64/mem80)
FILD src carga números enteros en st(0) st(0) <- src (mem16/mem32/mem64)
FBLD src carga números BCD en st(0) st(0) <- src (mem80)
FLDZ carga 0.0 en st(0) st(0) <- 0.0
FLD1 carga 1.0 into st(0) st(0) < ;- 1.0
FLDPI carga pi en st(0) st(0) <- ?(es decir, pi)
FLDL2T carga log2( 10) Cargar en st(0) st(0) <- log2(10)
FLDL2E Cargar log2(e) en st(0) st(0) <- log2(e)
FLDLG2 carga log10(2) en st(0) st(0) <- ?(0) <- log10(2)
FLDLN2 carga loge(2) en st(0 ) st( 0) <- loge(2)
FST dest Guarda el número real st(0) en dest dest <- st(0) (mem32/mem64)
FSTP dest dest < ;- st(0) (mem32/mem64/mem80); y luego realizar otra operación fuera de la pila
FIST dest guardar st(0) como un número entero para dest dest <- st(0) ( mem32/mem64)
FISTP dest dest < - st(0) (mem16/mem32/mem64); y luego realice otra operación fuera de la pila
FBST dest será st(0); ) como BCD al destino destino <- st(0) (mem80)
FBSTP destino destino <- st(0) (mem80) y luego realice otra operación fuera de la pila
;