APUNTES DE LENGUAJE ENSAMBLADOR ________________________________________________________________________________________ 6.3 El coprocesador numérico Hardware e instrucciones Instrucciones del coprocesador matemático INSTRUCCIONES DE CARGA DE PUNTO FLOTANTE MNEMÓNICO FLD FILD FBLD FLD FLDL FLDZ FLDPI FLD12e FLD12T FLDLG2 FLDLN2 OPERANDO ACCIÓN memoria para valor real memoria para valor entero valor real de la memoria se pone en la pila valor entero de memoria convertido a flotante se pone en la pila memoria para valor (BCD) ST(num) valor BCD de la memoria convertido a flotante se pone en la pila el contenido del registro en punto flotante se pone en la pila ninguno ninguno 1.0 se pone en la pila 0.0 se pone en la pila ninguno Ninguno (pi) se pone en la pila Log(base 2)(e) se pone en la pila ninguno ninguno Log(base 2)(10) se pone en la pila Log(base 10)(2) se pone en la pila ninguno Log(base e)(2) se pone en la pila INSTRUCCIONES PARA ALMACENAR DATOS DE PUNTO FLOTANTE MNEMÓNICO FST FSTP FST FSTP FIST FISTP FBSTP OPERANDO ST(num) ACCIÓN remplaza el contenido de ST(num) por la copia del valor de ST; sólo ST(num) es afectado ST(num) remplaza el contenido de ST(num) por la copia del valor de ST; ST es sacado de la pila memoria para valor real copia de ST puesto como valor real en memoria, la pila no es afectada memoria para valor real copia de ST puesto como valor real en memoria, ST es sacado de la pila memoria para valor entero copia de ST convertido a entero y almacenado en memoria memoria para valor entero copia de ST convertido a entero y almacenado en memoria, ST es sacado de la pila memoria para valor (BCD) copia de ST convertido a BCD y almacenado en memoria; ST es sacado de la pila INSTRUCCIONES PARA SUMA DE PUNTO FLOTANTE MNEMÓNICO FADD FADD FADD FADD FIADD FADDP OPERANDO ACCIÓN Ninguno ST(num), ST saca ST y ST(1) de la pila, suma esos valores y pone la suma en la pila suma ST(num) y ST; se remplaza ST(num) por la suma ST, ST(num) memoria valor real suma ST y St(num); remplaza ST por la suma suma a ST y un número real de memoria y remplaza ST por la suma memoria valor entero ST(num), ST suma ST un valor entero de memoria y remplaza ST por la suma suma ST(num) y ST; remplaza ST(num) por la suma y saca a ST de la pila 32 Prof. Juan Juárez Fuentes APUNTES DE LENGUAJE ENSAMBLADOR ________________________________________________________________________________________ INSTRUCCIONES PARA RESTA DE PUNTO FLOTANTE MNEMÓNICO FSUB FSUB FSUB FSUB FISUB FSUBP FSUBR FSUBR FSUBR FSUBR FISUBR FSUBPR OPERANDO ACCIÓN ninguno saca ST y ST(1); calcula ST(1) ± ST; pone la diferencia en la pila ST(num), ST ST, ST(num) calcula ST(num) ± ST; remplaza ST(num) por la diferencia calcula ST ± ST(num); remplaza ST por la diferencia memoria valor real memoria valor entero calcula ST ± numero real de memoria; remplaza ST por la diferencia calcula ST ± valor entero de memoria; remplaza ST por la diferencia ST(num), ST ninguno calcula ST(num) ± ST; remplaza ST(num) por la diferencia y saca ST de la pila saca ST y ST(1); calcula ST ± ST(num); pone la diferencia en la pila ST(num), ST ST, ST(num) calcula ST ± ST(num); remplaza ST(num) por la diferencia calcula ST(num) ± ST; remplaza ST por la diferencia memoria valor real memoria valor entero calcula numero real de memoria ± ST; remplaza ST por la diferencia calcula valor entero de memoria ± ST; remplaza ST por la diferencia ST(num), ST calcula ST ± ST(num); remplaza ST(num) por la diferencia y saca ST de la pila INSTRUCCIONES PARA MULTIPLICACIÓN DE PUNTO FLOTANTE MNEMÓNICO FMUL FMUL FMUL FMUL FIM UL FMULP OPERANDO ACCIÓN ninguno ST(num), ST saca ST y ST(1) de la pila, multiplica esos valores y pone el producto en la pila multiplica ST(num) y ST; se remplaza ST(num) por el producto ST, ST(num) Memoria valor real multiplica ST y ST(num); remplaza ST por el producto multiplica ST y un número real de memoria y remplaza ST por el producto Memoria valor entero ST(num), ST multiplica ST un valor entero de memoria y remplaza ST por el producto multiplica ST(num) y ST; remplaza ST(num) por el producto y saca a ST de la pila INSTRUCCIONES PARA DIVISIÓN DE PUNTO FLOTANTE MNEMÓNICO FDIV FDIV FDIV FDIV FIDIV FDIVP FDIVR FDIVR FDIVR FDIVR FIDIVR FDIVPR OPERANDO ACCIÓN ninguno saca ST y ST(1); calcula ST(1) / ST; pone el cociente en la pila ST(num), ST ST, ST(num) calcula ST(num) / ST; remplaza ST(num) por el cociente calcula ST / ST(num); remplaza ST por el cociente memoria valor real memoria valor entero calcula ST / numero real de memoria; remplaza ST por el cociente calcula ST / valor entero de memoria; remplaza ST por el cociente ST(num), ST ninguno calcula ST(num) / ST; remplaza ST(num) por el cociente y saca ST de la pila saca ST y ST(1); calcula ST / ST(num); pone el cociente en la pila ST(num), ST ST, ST(num) calcula ST / ST(num); remplaza ST(num) por el cociente calcula ST(num) / ST; remplaza ST por el cociente memoria valor real memoria valor entero calcula numero real de memoria / ST; remplaza ST por el cociente calcula valor entero de memoria / ST; remplaza ST por el cociente ST(num), ST calcula ST / ST(num); remplaza ST(num) por el cociente y saca ST de la pila 33 Prof. Juan Juárez Fuentes APUNTES DE LENGUAJE ENSAMBLADOR ________________________________________________________________________________________ INSTRUCCIONES ADICIONALES DE PUNTO FLOTANTE MNEMÓNICO FABS FCHS FRNDINT FSQRT OPERANDO ACCIÓN ninguno ninguno ST = |ST| (valor absoluto) ST = - ST (cambio de signo) ninguno ninguno redondea ST a valor entero remplaza el contenido de ST por su raíz cuadrada INSTRUCCIONES PARA COMPARACIÓN DE PUNTO FLOTANTE MNEMÓNICO FCOM FCOM FCOM FICOM FTST FCOMP FCOMP FCOMP FICOMP FCOMPP OPERANDO ACCIÓN ninguno ST(num) Compara ST y St(1) Compara ST y ST(num) memoria valor real memoria valor entero Compara ST y un número real en memoria Compara ST y un entero en memoria ninguno ninguno Compara ST y y 0.0 Compara ST y ST(1) y lo saca de la pila ST(num) memoria valor real Compara ST y ST(num) y lo saca de la pila Compara ST y un número real en memoria lo saca de la pila memoria valor entero ninguno Compara ST y con un entero en memoria y lo saca de la pila Compara ST y ST(1) y lo saca de la pila a los dos INSTRUCCIONES MISCELANEAS DE PUNTO FLOTANTE MNEMÓNICO FSTSW FSTSW FSTCW FLDCW OPERANDO ACCIÓN Palabra en memoria Copia el registro estatus a la memoria en tamaño palabra AX Palabra en memoria Copia el registro estatus a AX Copia el registro de la palabra de control a la memoria en palabra Palabra en memoria Copia la palabra en memoria al registro de palabra de control 34 Prof. Juan Juárez Fuentes