Red de conocimiento informático - Conocimiento informático - Para operaciones decimales, el lenguaje C puede usar operaciones de punto flotante, entonces, ¿cómo realiza el lenguaje ensamblador operaciones decimales?

Para operaciones decimales, el lenguaje C puede usar operaciones de punto flotante, entonces, ¿cómo realiza el lenguaje ensamblador operaciones decimales?

El lenguaje ensamblador tiene instrucciones de punto flotante

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.

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

;