Below I am sharing the FPU Reference Guide in its entirety f…

Written by Anonymous on May 23, 2026 in Uncategorized with no comments.

Questions

Belоw I аm shаring the FPU Reference Guide in its entirety frоm Unit 12 fоr your reference.  The HLA Instructions we hаve learned so far are documented earlier in this exam. Programmer's Reference to HLA Floating-Point Instructions FPU Instructions Instruction Syntax Description FINIT finit(); initialize FPU for use FLD fld( operand ); ST0 := operand; previous ST values pushed down the stack; only floating-point 32-bit, 64-bit and 80-bit variables or constants or one of the ST registers allowed; no general-purpose registers allowed FST fst( operand ); operand := ST0; only floating-point 32-bit, 64-bit and 80-bit variables or constants or one of the ST registers allowed; no general-purpose registers allowed FSTP fstp( operand ); identical to FST but also pops off the value ST0 FXCH fxch( ); ST1 := ST0; ST0 := ST1; FXCH fxch( STn ); STn := ST0; ST0 := STn; only ST registers allowed FILD fild( operand ); ST0 := operand; previous ST values pushed down the stack; only 16-bit, 32-bit, and 64-bit integer variables allowed; no general-purpose registers allowed FIST fist( operand ); operand := ST0; only 16-bit, 32-bit and 64-bit integer variables allowed; no general-purpose registers allowed FISTP fistp( operand ); identical to FIST but also pops off the value ST0 FADD fadd( ); ST0 := ST1 + ST0; pops original ST0 and ST1 and pushes the new ST0 value FADD fadd( operand ); ST0 := operand + ST0; operand must be a floating-point 32-bit, 64-bit or 80-bit variable; pops original ST0 and pushes the new ST0 value FADD fadd( operand, ST0 ); --OR-- fadd( ST0, operand ); computes first operand + second operand; operand must be a floating-point 32-bit, 64-bit or 80-bit variable or an ST register; pops original ST0; result stored in second operand FSUB fsub( ); ST0 := ST1 - ST0; pops original ST0 and ST1 and pushes the new ST0 value FSUB fsub( operand ); ST0 := ST0 - operand; operand must be a floating-point 32-bit, 64-bit or 80-bit variable; pops original ST0 and pushes the new ST0 value FSUB fsub( operand, ST0 ); --OR-- fsub( ST0, operand ); computes first operand - second operand; operand must be a floating-point 32-bit, 64-bit or 80-bit variable or an ST register; pops original ST0; result placed in second operand FMUL fmul( ); ST0 := ST1 * ST0; pops original ST0 and ST1 and pushes the new ST0 value FMUL fmul( operand ); ST0 := ST0 * operand; operand must be a floating-point 32-bit, 64-bit or 80-bit variable; pops original ST0 and pushes the new ST0 value FMUL fmul( operand, ST0 ); --OR-- fmul( ST0, operand ); computes first operand * second operand; operand must be a floating-point 32-bit, 64-bit or 80-bit variable or an ST register; pops original ST0; result stored in second operand FDIV fdiv( ); ST0 := ST1 / ST0; pops original ST0 and ST1 and pushes the new ST0 value FDIV fdiv( operand ); ST0 := ST0 / operand; operand must be a floating-point 32-bit, 64-bit or 80-bit variable; pops original ST0 and pushes the new ST0 value FDIV fdiv( operand, ST0 ); --OR-- fdiv( ST0, operand ); computes second operand / first operand; operand must be a floating-point 32-bit, 64-bit or 80-bit variable or an ST register; pops original ST0; result stored in second operand FSQRT fsqrt( ); computes square root of ST0; pops original ST0 values; pushes the computed result FRNDINT frndint( ); rounds ST0 to nearest int; pops original ST0 value; pushes the computed result FABS fabs( ); computes absolute value of ST0; pops original ST0 value; pushes the computed result FCOM fcom( ); calculates ST0 - ST1, setting FPU condition flag bits accordingly FCOM fcom( operand ); calculates ST0 - operand, setting FPU condition flag bits accordingly FTST ftst( ); identical to FCOM( 0.0 ); FLDZ fldz( ); pushes zero onto ST0 FLD1 fld1( ); pushes one onto ST0 FLDPI fldpi( ); pushes pi onto ST0 FLDL2T fldl2t( ); pushes log2( 10 ) onto ST0 FLDL2E fldl2e( ); pushes log2( e ) onto ST0 FLDLG2 fldlg2( ); pushes log10( 2 ) onto ST0 FLDLN2 fldln2( ); pushes ln( 2 ) onto ST0

Comments are closed.