Assembly Avanzato con MASM

Sommario terza parte



Capitolo 16:
Rappresentazione dei numeri reali con la CPU

16.1 Principali insiemi numerici della matematica
16.2 Codifica dei numeri interi con la CPU
16.3 Codifica dei numeri reali con la CPU
16.3.1 Codifica binaria dei numeri reali
16.3.2 Caratteristiche dei numeri in virgola mobile a n bit
16.3.3 Numeri in virgola fissa

16.4 Formati standard IEEE per i numeri in virgola mobile
16.4.1 Formato single precision a 32 bit
16.4.2 Formato double precision a 64 bit
16.4.3 Formato quadruple precision a 128 bit
16.4.4 Operazioni raccomandate dallo standard IEEE 754
16.4.5 Metodi di arrotondamento
16.4.6 Gestione delle eccezioni


Capitolo 17:
80x87 Floating Point Unit - Il coprocessore matematico

17.1 Evoluzione dell'hardware per la FPU
17.2 Struttura interna di una FPU
17.3 Registri del MCP
17.3.1 FPU Data Registers (STACK)
17.3.2 FPU Status Word Register
17.3.3 FPU Control Word Register
17.3.4 FPU Tag Word Register
17.3.5 FPU Instruction and Operand Pointer Registers
17.3.6 FPU Opcode Register

17.4 Tipi di dati supportati dalla FPU
17.4.1 Numeri reali
17.4.2 Numeri interi
17.4.3 Numeri Packed BCD

17.5 Gestione dei NaN
17.6 Gestione delle eccezioni
17.6.1 Gestione automatica delle eccezioni
17.6.2 Gestione via software delle eccezioni
17.6.3 Invalid Operation Exception
17.6.4 Divide By Zero Exception
17.6.5 Denormalized Operand Exception
17.6.6 Numeric Overflow Exception
17.6.7 Numeric Underflow Exception
17.6.8 Inexact Result (Precision) Exception


Capitolo 18:
Il set di istruzioni della FPU

18.1 Struttura di una istruzione numerica
18.2 Set di istruzioni della FPU
18.2.1 L'istruzione F2XM1 - Compute 2x - 1
18.2.2 L'istruzione FABS - Absolute Value
18.2.3 Le istruzioni FADD, FADDP e FIADD - Add
18.2.4 L'istruzione FBLD - Load Binary Coded Decimal
18.2.5 L'istruzione FBSTP - Store BCD Integer and Pop
18.2.6 L'istruzione FCHS - Change Sign
18.2.7 Le istruzioni FCLEX e FNCLEX - Clear Exceptions
18.2.8 Le istruzioni FCMOVcc - Floating-Point Conditional Move
18.2.9 Le istruzioni FCOM, FCOMP e FCOMPP - Compare Floating-Point Values
18.2.10 Le istruzioni FCOMI, FCOMIP, FUCOMI e FUCOMIP - Compare Floating-Point Values and Set EFLAGS
18.2.11 L'istruzione FCOS - Cosine
18.2.12 L'istruzione FDECSTP - Decrement Stack-Top Pointer
18.2.13 Le istruzioni FDIV, FDIVP e FIDIV - Divide
18.2.14 Le istruzioni FDIVR, FDIVRP e FIDIVR - Reverse Divide
18.2.15 L'istruzione FFREE - Free Floating-Point Register
18.2.16 Le istruzioni FICOM e FICOMP - Compare Integer
18.2.17 L'istruzione FILD - Load Integer
18.2.18 L'istruzione FINCSTP - Increment Stack-Top Pointer
18.2.19 Le istruzioni FINIT e FNINIT - Initialize Floating-Point Unit
18.2.20 Le istruzioni FIST e FISTP - Store Integer
18.2.21 L'istruzione FISTTP - Store Integer with Truncation
18.2.22 L'istruzione FLD - Load Floating-Point Value
18.2.23 Le istruzioni FLD1, FLDL2T, FLDL2E, FLDPI, FLDLG2, FLDLN2 e FLDZ - Load Constant
18.2.24 L'istruzione FLDCW - Load x87 FPU Control Word
18.2.25 L'istruzione FLDENV - Load x87 FPU Environment
18.2.26 Le istruzioni FMUL, FMULP e FIMUL - Multiply
18.2.27 L'istruzione FNOP - No Operation
18.2.28 L'istruzione FPATAN - Partial Arctangent
18.2.29 L'istruzione FPREM - Partial Remainder
18.2.30 L'istruzione FPREM1 - Partial Remainder
18.2.31 L'istruzione FPTAN - Partial Tangent
18.2.32 L'istruzione FRNDINT - Round to Integer
18.2.33 L'istruzione FRSTOR - Restore x87 FPU State
18.2.34 Le istruzioni FSAVE e FNSAVE - Store x87 FPU State
18.2.35 L'istruzione FSCALE - Scale
18.2.36 L'istruzione FSIN - Sine
18.2.37 L'istruzione FSINCOS - Sine and Cosine
18.2.38 L'istruzione FSQRT - Square Root
18.2.39 Le istruzioni FST e FSTP - Store Floating-Point Value
18.2.40 Le istruzioni FSTCW e FNSTCW - Store x87 FPU Control Word
18.2.41 Le istruzioni FSTENV e FNSTENV - Store x87 FPU Environment
18.2.42 Le istruzioni FSTSW e FNSTSW - Store x87 FPU Status Word
18.2.43 Le istruzioni FSUB, FSUBP e FISUB - Subtract
18.2.44 Le istruzioni FSUBR, FSUBRP e FISUBR - Reverse Subtract
18.2.45 L'istruzione FTST - Test
18.2.46 Le istruzioni FUCOM, FUCOMP e FUCOMPP - Unordered Compare Floating-Point Values
18.2.47 L'istruzione FWAIT - Wait
18.2.48 L'istruzione FXAM - Examine Floating-Point
18.2.49 L'istruzione FXCH - Exchange Register Content
18.2.50 L'istruzione FXRSTOR - Restore x87 FPU, MMX, XMM and MXCSR State
18.2.51 L'istruzione FXSAVE - Save x87 FPU, MMX Technology and SSE State
18.2.52 L'istruzione FXTRACT - Extract Exponent and Significand
18.2.53 L'istruzione FYL2X - Compute y * log2x
18.2.54 L'istruzione FYL2XP1 - Compute y * log2(x + 1)


Capitolo 19:
Programmazione del coprocessore matematico

19.1 Visualizzazione di numeri in virgola mobile sullo schermo
19.2 Gestione delle eccezioni generate dalla FPU
19.3 Grafici di funzioni matematiche con la libreria VESALIB
19.3.1 Grafico di un segmento di retta

19.4 Approssimazione di un'onda quadra con lo sviluppo in serie di Fourier
19.5 Insieme frattale di Mandelbrot



Appendici


Appendice A: Tabella dei codici ASCII estesi
Appendice B: Tabella dei codici di scansione della tastiera
Appendice C: Tabella di conversione tra le principali basi numeriche
Appendice D: Header di un file EXE per DOS
Appendice E: Il Program Segment Prefix
Appendice F: Tabella delle istruzioni della CPU (RM)
Appendice G: Vettori di interruzione in modalità reale