Ch 23 FPU (2) ¤@¤¸¤G¦¸¤èµ{¦¡

³o¤@³¹ùؤp¤ì°¸±N©µÄò¤W¤@³¹ªº«ü¥O¡A¼g¤@­Ó­pºâ¤@¤¸¤G¦¸¤èµ{¦¡ªºµ{¦¡¡AROOT.ASM¡C


¤@¤¸¤G¦¸¤èµ{¦¡¤§®Ú

©³¤U¤p¤ì°¸´N§Q¥Î¥H¤W©Ò´£ªº 8087 «ü¥O¨D±o¤@¤¸¤G¦¸¤èµ{¦¡¤§®Ú¡C®Ú¾Ú°ê¤¤©Ò¾Çªº¡A°²¦p¦³¤@­Ó¤@¤¸¤G¦¸¤èµ{¦¡ ax2+bx+c=0¡A«h¦¹¤èµ{¦¡ x ¤§¸Ñ¬°

¤@¤¸¤G¦¸¤èµ{¦¡®Ú¤§¤½¦¡

©³¤U³o­Óµ{¦¡¬O¨D x2-25=0 ¤èµ{¦¡¤§¸Ñ¡A¦pªG±z­n¨D¨ä¥L¤èµ{¦¡ªº¸Ñ¡A¥²¶·­×§ï­ì©lµ{¦¡¤§ªº lr_a¡Blr_b¡Blr_c ¤T«Y¼Æ (¦b MASM 6.x ¸Ì¡Ac ¬O«O¯d¦r¡A©Ò¥H¬°¤F¨Ï MASM 5.x »P 6.x ³£¯à¶¶§Q²ÕĶ¡A§Ú¦b«Y¼Æ¤§«e¥[¤W lr¡Aªí¥Üªø¹ê¼Æ¤§·N)¡C³o­Óµ{¦¡¤]¥u¯à¥Ñ SYMDEB.EXE Æ[¬Ýµ²ªG¡A¤p¤ì°¸±N©óµy«á¦A¼¶¼gª½±µÅã¥Ü ST ¤§¤Q¶i¦ì¼Æ­È©ó¿Ã¹õ¤Wªº°Æµ{¦¡¡C

;***************************************
code    segment
        assume  cs:code,ds:code
        org     100h
;---------------------------------------
start:  finit             ;---st--;-st(1)-;-st(2)-;-st(3)-;06
        fld     lr_b      ;   b   ;
        fmul    lr_b      ;  b2   ;       ;       ;       ;08
        fld     lr_a      ;   a   ;  b2   ;
        fmul    lr_c      ;  ac   ;  b2   ;       ;       ;10
        fimul   const     ;  4ac  ;  b2   ;
        fsubp   st(1),st  ;D=bb-4ac       ;       ;       ;12
        shr     const,1
        fsqrt             ; SQR(D);       ;       ;       ;14
        fld     lr_b      ;   b   ; SQR(D)
        fchs              ;  -b   ; SQR(D);       ;       ;16
        fld     st        ;  -b   ;  -b   ; SQR(D)
        fadd    st,st(2)  ;-b+SQ(D)  -b   ; SQR(D);       ;18
        fild    const     ;   2   ;-b+SQ(D)  -b   ; SQR(D)
        fmul    lr_a      ;  2a   ;-b+SQ(D)  -b   ; SQR(D);20
        fdiv    st(1),st  ;  2a   ;  x1   ;  -b   ; SQR(D)
        fxch    st(1)     ;  x1   ;  2a   ;  -b   ; SQR(D);22
        fstp    x1        ;  2a   ;  -b   ; SQR(D)
        fxch    st(1)     ;  -b   ;  2a   ; SQR(D);       ;24
        fsubrp  st(2),st  ;  2a   ;-b-SQ(D)
        fdivp   st(1),st  ;  x2   ;       ;       ;       ;26
        fstp    x2
        int     20h     ;28
        org     160h    ;29
lr_a    dq      1.00    ;30
lr_b    dq      0.00	;31 
lr_c    dq      -25.0	;32
x1      dq      ?       ;33 ¨ä¤¤¤§¤@®Ú
x2      dq      ?       ;34 ¨ä¤¤¤§¤@®Ú
const   dw      4       ;35
;---------------------------------------
code    ends
;***************************************
        end     start

¥ý¨Ó¬Ý¬Ý°õ¦æµ²ªG¡C

h:\homepage\source>e:symdeb root.com [Enter]
Microsoft (R) Symbolic Debug Utility  Version 4.00
Copyright (C) Microsoft Corp 1984, 1985.  All rights reserved.

Processor is [80286]
-G [Enter]

Program terminated normally (0)
-DL 160 L5 [Enter]
2117:0160  00 00 00 00 00 00 F0 3F  +0.1E+1
2117:0168  00 00 00 00 00 00 00 00  +0.0E+0
2117:0170  00 00 00 00 00 00 39 C0  -0.25E+2
2117:0178  00 00 00 00 00 00 14 40  +0.5E+1
2117:0180  00 00 00 00 00 00 14 C0  -0.5E+1
-Q [Enter]

¬°¤F¯à°÷¤è«KÆ[¹î«Y¼Æ»P®Ú¡A©Ò¥H¤p¤ì°¸¦bµ{¦¡²Ä 29 ¦æ¥[¤J¡yorg 160h¡z¡A¨Ï±o©Ò¦³ªø¹ê¼ÆÅܼƯà°÷¥Ñ¦ì§} 160H ¶}©l¡A«e¤T­Óªø¹ê¼Æ¨Ì¦¸¬O¤G¦¸¤èµ{¦¡ªº«Y¼Æ¡A²Ä¥|¡B¤­­Óªø¹ê¼Æ¬O¨â®Ú¡C¦b SYMDEB ùØ¡A¡yE¡z¬Oªí¥Ü 10 ªº¾­¤èªº·N«ä¡A¨Ò¦p¡A¦ì§} 160H ªºªø¹ê¼Æ¬O +0.1E+1 ´N¬Oªí¥Ü +0.1 ­¼¥H 10 ªº¤@¦¸¤è¡A¤]´N¬O 1 ªº·N«ä¡C

¦Ü©ó¬°¦ó§Ú¿ï¦b¦ì§} 160H ¶}©l¦s©ñÅܼƩO¡H¨ä¹ê 160H ³o­Ó¦ì§}ªºÀò±o¸g¹L°²³]¦Aºë½T¨D±o¡C¸Ó¦ì§}ªº­­¨î¬O¤£¯àÂл\µ{¦¡½X¡A¦]µ{¦¡¤£¤j¡A¤p¤ì°¸¥ý°²³]¦ì§}¬° 1C0H¡A²ÕĶ³sµ²«á¥Ñ SYMDEB Æ[¹î±oª¾³Ì«á¤@¦æ¡yINT 20H¡z¦b¦ì§} 157H¡A©Ò¥H§Ú¦A­×§ï¬° 160H¡C

ROOT.ASM µ{¦¡¦³¤@­Ó¯Ê³´¡A°²¦p b2-4ac < 0¡A¨ä¥­¤è®Ú·|²£¥Í¿ù»~¡A³o®ÉÀ³¨Ï¥Î FPU ªº¤ñ¸û«ü¥O¶i¦Ó²£¥Í±ø¥ó¸õÅD¡A¨Ïµ{¦¡Âà¦V¡C

¨Ï FPU ¯à±ø¥ó¸õÅD

©Ò¿×±ø¥ó¸õÅD´N¬O¤ñ¸û¨â¼Æªº¤j¤p¡A¦pªG¬Y¼Æ¸û¤j¡A´N°õ¦æ¤@¬qµ{¦¡¡A­Y¸û¤p«h°õ¦æ¥t¤@¬qµ{¦¡¡AÃþ¦ü³o¼Ëªº¸õÅDºÙ¬°±ø¥ó¸õÅD¡C¦b FPU ªº«ü¥O¶°¨Ã¨S¦³¯à¨Ï FPU ¸õÅDªº«ü¥O¡A¨Æ¹ê¤W FPU ¤]µLªk§ïÅÜ CPU ¼È¦s¾¹¤§­È (ÁÙ°O±o­n§ïÅܵ{¦¡°õ¦æ¦ì§}¥²¶·§ïÅÜ CS:IP ¤§­È)¡A©Ò¥H­n²£¥Í FPU ±ø¥ó¸õÅD¥²¶·¥Î¶¡±µ¤èªk¡C¨ä¨BÆJ¦³¥|­Ó¡G

  1. ¥ý¥Î FPU ªº¤ñ¸û«ü¥O§ïÅÜ FPU ªºª¬ºA¦r²Õ¼È¦s¾¹¡C
  2. ¦A¥Î FPU ªº«ü¥O FSTSW §âª¬ºA¦r²Õ¦s¤J¤@­Ó°O¾ÐÅéÅܼÆùØ¡C
  3. ±N¦¹°O¾ÐÅéÅܼƦs¤J AH ¼È¦s¾¹¡A¦A¥Î CPU «ü¥O SAHF «ü¥O¦s¤J CPU ªººX¼Ð¼È¦s¾¹ùØ¡C¦¹¨BÆJ¨ÏºX¼Ð¼È¦s¾¹¤§­Èµ¥©óª¬ºA¦r²Õ¡C
  4. ¦A¥Î CPU «ü¥O JL/JG/JE/JA/JB ¨Ó¸õÅD¦Ü¥¿½T³B°õ¦æ¡C

ª¬ºA¦r²Õ

FPU ¦³¤­Ãþ¼È¦s¾¹¡A«e³¹¤w¤¶²Ð¹L³Ì±`¥Îªº°ïÅ|¼È¦s¾¹¡A³o¸Ì±N¤¶²Ðª¬ºA¦r²Õ(status word)¡CÅU¦W«ä¸q¡Aª¬ºA¦r²Õ¬O¤@­Ó 16 ¦ì¤¸ªº¼È¦s¾¹¡Aªí¥Ü FPU ªºª¬ºA¡A©Ò¿×ª¬ºA¬O«ü FPU ¬O¤£¬O¦b¦£¸L¤¤¡B¬O§_°£¥H¹s¡B¬O§_µL®Ä¹Bºâ¡B²{¦b°ïÅ|³»ºÝ¬O¨º¤@­Ó°ïÅ|¼È¦s¾¹µ¥µ¥¡A¦b¦¹³B§Ú­Ì­nª`·Nªº¬O¥|­Óª¬ºA½X¦ì¤¸¡AC0¡BC1¡BC2¡BC3¡C³o¨Ç¦ì¤¸¤À¥¬¦p¤U¹Ï¡G

x87 ª¬ºA¦r²Õ

¤ñ¸û«ü¥O¡GFCOM¡BFCOMP¡BFCOMPP¡BFICOM¡BFICOMP

¼ÐÃD©Ò¨£ªº³o¨Ç¤ñ¸û«ü¥O³£¬O¥H°ïÅ|³»¬°¥Øªº¹Bºâ¤¸¡A¦Ó¨Ó·½¹Bºâ¤¸¥i¥H¬O°O¾ÐÅéÅܼƩάO¨ä¥Lªº°ïÅ|¼È¦s¾¹¡A¨Ò¦p

FCOM    ST,ST(1)
FCOM    ST,x

¤W­z²Ä¤@¨Ò¬O¤ñ¸û ST ©M ST(1) ¤§¼Æ­È¡A²Ä¤G¨Ò¬O¤ñ¸û ST ©M°O¾ÐÅéÅÜ¼Æ x ¤§¼Æ­È¡A¦Ó³o°O¾ÐÅéÅܼƪº§ÎºA¥i¥H¬Oµu¹ê¼Æ©Mªø¹ê¼Æ¡C¦]¬° FCOM µ¥«ü¥O§¡¥H ST ¬°¥Øªº¹Bºâ¤¸¡A©Ò¥H ST ¬O¥i¥H¬Ù²¤¤£¼gªº¡A¨Ò¦p¤W­z¨â¨Ò¡A¥i¥H¼g¦¨¤U­±ªº¼Ë¤l¡A

FCOM    ST(1)
FCOM    x

µ²ªG¬O¤@¼Ëªº¡C°²¦p ST ªº¤ñ¸û¹ï¶H¬O ST(1) ªº¸Ü( ¨Ó·½¹Bºâ¤¸¬O ST(1) )¡A³s ST(1) ¤]¥i¥H¬Ù²¤¡C¦Ü©ó FCOMP ©M FCOMPP ¤À§O¬O¤ñ¸û«á¼u¥X¤@¦¸©M¼u¥X¨â¦¸¡A³o¸Ì¼u¥Xªº¼Æ·|®ø¥¢¤£¨£¨Ã¨S¦³¦s¤J°O¾ÐÅ餤¡A³oÂI©M FSTP ¤£¦P¡C¦Ó FICOM ©M FICOMP ¬O¥Î¨Ó¤ñ¸û¾ã¼Æªº¡A¦Ó³o¨Ó·½¹Bºâ¤¸¾ã¼Æ§ÎºA¥i¥H¬O¦r²Õ¾ã¼Æ©Mµu¾ã¼Æ¡C

FPU ªº¤ñ¸û«ü¥O·|§ïÅܪ¬ºA¦r²Õªº C3 ©M C0 ¦ì¤¸¡AC3¡BC0 ¦ì¤¸¬O¦bª¬ºA¦r²Õªº²Ä¤K¡B14 ¦ì¤¸¡A¦p¤W¹Ï¡C¤ñ¸û«á¨Ì ST ©M¨Ó·½¹Bºâ¤¸ªº¤j¤p¡AC3 ©M C0 ³]©w¤è¦¡¦p¤Uªí¡G

  ¤ñ¸ûµ²ªG      C3  C0
----------------------------
ST>¨Ó·½¹Bºâ¤¸   0   0
ST<¨Ó·½¹Bºâ¤¸   0   1
 ST=¨Ó·½¹Bºâ¤¸   1   0

FSTSW «ü¥O

FSTSW (store status word) ³o­Ó«ü¥Oªº¥\¥Î¬O¥Î¨Ó§âª¬ºA¦r²Õ¨ú¥X¨Ã¦s¤JAX¼È¦s¾¹©Î 16 ¦ì¤¸ªøªº°O¾ÐÅéÅܼÆùØ¡A¨ä»yªk¬O

FSTSW   mem16
FSTSW   AX

ª`·N¡IFSTSW ¤§«á©Ò±µªº¹Bºâ­ì¥i¥H¬O AX ©Î 16 ¦ì¤¸ªøªº°O¾ÐÅéÅܼơA«eªÌ¥u¯à¥Î¦b 387 µ¥¯Å¥H¤Wªº FPU¡F¦Ü©ó 16 ¦ì¤¸ªøªº°O¾ÐÅéÅܼƫh¬O 8087 ´N¥i¥H¨Ï¥Î¤F¡C¬°¤°»ò¥u¯à±µ AX ¦Ó¤£¥i±µ¨ä¥L 16 ¦ì¤¸ªº¼È¦s¾¹©O¡H¥D­n¬O¬°¤F¤U­± SAHF «ü¥O¯à«Ü¤è«Kªº§â AH ¼È¦s¾¹¤ºªº¸ê®Æ²¾¨ìºX¼Ð¼È¦s¾¹ùØ¡A§_«h FPU ªº¹Bºâ¤¸¬O¤£¯à¨Ï¥Î CPU ªº¼È¦s¾¹¡C

SAHF «ü¥O

SAHF ¬O 8088 «ü¥O¶°¤¤ªº¤@­Ó«ü¥O¡A¨Ã«D FPU «ü¥O¡C³o­Ó«ü¥O¬O§â AH ¼È¦s¾¹¤¤ªº­È²¾¨ìºX¼Ð¼È¦s¾¹ªº¸û§Cªº 8 ­Ó¦ì¤¸¡A³o 8 ­Ó¦ì¤¸¥u¦³²Ä¤C¡B¤»¡B¥|¡B¤G¡B¹s¦ì¤¸¦³¥Î¡A²Ä¤­¡B¤T¡B¤@¦ì¤¸¨S¦³¨Ï¥Î¡A½Ð°Ñ¦Òªþ¿ý¤G8088 ªººX¼Ð¼È¦s¾¹¡C

©Ò¥H°²¦p AH ¬° 0100 0000B¡A«h°õ¦æ SAHF «ü¥O«á¡A¹sºX¼Ð·|³Q³]¬°¤@¡A±z¥i¥H¹w´ú¬Ý¬Ý¤U¦Cµ{¦¡¤ù¬q±N·|¦³¦óµ²ªG¡H

        mov     ah,01000000b
        sahf
        jz      zf_set
        mov     dx,offset mes1
        jmp     short print
zf_set: mov     dx,offset mes2
print:  mov     ah,9
        int     21h
mes2    db      '¹sºX¼Ð¤w³]©w$'
mes1    db      '¹sºX¼Ð¥¼³]©w$'

³oµ{¦¡¤ù¬q·|Åã¥Ü¥X¡y¹sºX¼Ð¤w³]©w¡z¡C©Ò¥H¨Æ¹ê¤W¡A¸õÅD«ü¥O¨ä¹ê¬O¶È¶È¬ÝºX¼Ð¼È¦s¾¹ªº³]©w­È¨M©w¦p¦ó¸õ¨ì¨º¸Ì¥h°õ¦æ¡A¦Ü©óºX¼Ð¼È¦s¾¹¦p¦ó³]©w¡A¦b¸õÅD«ü¥O°õ¦æ®É¬O¤£¶·²z·|ªº¡C

FPU ªºª¬ºA¼È¦s¾¹ùتº C3 ©M C0 ¦ì¤¸¡A¸g FSTSW «ü¥O¶Ç¨ì 16 ¦ì¤¸°O¾ÐÅéÅܼơA¦A±µµÛ²¾¨ì AX ¼È¦s¾¹ùخɡAAH ªº²Ä 6¡B0 ¦ì¤¸´N¬Oªí¥Ü C3 ©M C0 ¦ì¤¸¡A±z¥i¥H¹ï·Ó¤W­± 8087 ª¬ºA¦r²Õ»P 8088 ºX¼Ð¼È¦s¾¹¨â±i¹Ï¡Aµo²{ C3 «ê¦n¹ïÀ³ ZF¡AC0 «ê¦n¹ïÀ³ CF¡C¤§«á¦A¥Ñ SAHF «ü¥O§â AH ²¾¨ìºX¼Ð¼È¦s¾¹¡A©Ò¥H C3¡BC0 ´N²¾¨ì¹sºX¼Ð»P¶i¦ìºX¼Ð¤F¡A¥u­nÀˬd³o¨â­ÓºX¼Ð´N¥i¥H¤ñ¸û ST »P¨Ó·½¹Bºâ¤¸ªº¤j¤p¡A¦Ó¨M©w¸õÅD¤è¦V¡C

­×§ï ROOT.ASM µ{¦¡

«e­±©Ò¼¶¼gªº¨D¤@¤¸¤G¦¸¤èµ{¦¡¨â®Úªºµ{¦¡ ROOT.ASM ¦³¯Ê³´¡A¦b³o¸Ì¤p¤ì°¸±N¥L­×§ï¦pªG§P§O¦¡¤p©ó¹s¡Aµ{¦¡¯àÂà¦V°õ¦æ¡C­×§ï¤§«áµ{¦¡¦p¤U¡G

;***************************************
code    segment
        assume  cs:code,ds:code
        org     100h
;---------------------------------------
start:  finit             ;---st--;-st(1)-;-st(2)-;-st(3)-;06
        fld     lr_b      ;   b   ;
        fmul    lr_b      ;  b^2  ;       ;       ;       ;08
        fld     lr_a      ;   a   ;  b^2  ;
        fmul    lr_c      ;  ac   ;  b^2  ;       ;       ;10
        fimul   const     ;  4ac  ;  b^2  ;
        fsubp   st(1),st  ;D=bb-4ac       ;       ;       ;12
        shr     const,1
        fcom    zero      ;§P§O¦¡¬O§_¤p©ó 0                14
        fstsw   status    ;µ²ªG¦s©ó status ÅܼÆùØ          15
        fwait             ;µ¥«ÝÀx¦s§¹²¦                    16
        mov     ax,status ;¤ñ¸ûµ²ªG²¾¤J AX                 17
        sahf              ;¤ñ¸ûµ²ªG²¾¤JºX¼Ð¼È¦s¾¹          18
        jb      d_less_0  ;­Y¤p©ó«h¸õÅD¨ì d_less_0 ³B      19
        fsqrt             ; SQR(D);       ;       ;       ;20
        fld     lr_b      ;   b   ; SQR(D)
        fchs              ;  -b   ; SQR(D);       ;       ;22
        fld     st        ;  -b   ;  -b   ; SQR(D)
        fadd    st,st(2)  ;-b+SQ(D)  -b   ; SQR(D);       ;24
        fild    const     ;   2   ;-b+SQ(D)  -b   ; SQR(D)
        fmul    lr_a      ;  2a   ;-b+SQ(D)  -b   ; SQR(D);26
        fdiv    st(1),st  ;  2a   ;  x1   ;  -b   ; SQR(D)
        fxch    st(1)     ;  x1   ;  2a   ;  -b   ; SQR(D);28
        fstp    x1        ;  2a   ;  -b   ; SQR(D)
        fxch    st(1)     ;  -b   ;  2a   ; SQR(D);       ;30
        fsubrp  st(2),st  ;  2a   ;-b-SQ(D)
        fdivp   st(1),st  ;  x2   ;       ;       ;       ;32
        fstp    x2
        int     20h               ;34 µ²§ôµ{¦¡
d_less_0:                         ;35 §P§O¦¡¤p©ó¹s¡AµL¹ê¼Æ¸Ñ
        mov     dx,offset message ;36 ¦L¥XµL¹ê¼Æ¸Ñ
        mov     ah,9
        int     21h
        int     20h               ;39 µ²§ôµ{¦¡

        org     1e0h    ;41
lr_a    dq      1.00    ;42
lr_b    dq      0.00    ;43
lr_c    dq      25.0    ;44
x1      dq      ?       ;45 ¨ä¤¤¤§¤@®Ú
x2      dq      ?       ;46 ¨ä¤¤¤§¤@®Ú
zero    dq      0       ;47
const   dw      4       ;48
status  dw      ?       ;49 ª¬ºA¦r²Õ
message db      'µL¹ê¼Æ¸Ñ$'
;---------------------------------------
code    ends
;***************************************
        end     start

±N¥L¦s¬° ROOT2.ASM¡A¨Ã²ÕĶ¦¨ ROOT2.COM ÀÉ¡A¦b SYMDEB.EXE ùØ°õ¦æ¨ÃÆ[¹îµ²ªG¡C¦pªG§P§O¦¡¬°­t­È¡A«h°±¤î¹Bºâ¦Ó¦L¥X¡yµL¹ê¼Æ¸Ñ¡z«á²×¤îµ{¦¡¡C

­×§ï«áªºµ{¦¡¼W¥[¤F´X¦æ¡A²Ä 14 ¨ì²Ä 19 ¦æ¡A¤]´N¬O¦b°µ¶}¥­¤è®Ú¹Bºâ«e¥ýÀˬd ST ¬O§_¤p©ó¹s¡A¦¹®É ST ¤ºªº¼Æ­È´N¬O©Ò¿×ªº§P§O¦¡ (b2-4ac)¡C­È±oª`·Nªº¬O²Ä 16 ¦æ¡A¤p¤ì°¸¥[¤W¤F FWAIT «ü¥O¡A½T«O FPU ¤w¸g§âª¬ºA¦r²Õ¦s¤J status Åܼƫá¡ACPU ¤~±N status ¤§­È¦s¤J AX ùØ¡C¤p¤ì°¸¤]¸Õ¹L¦pªG§â³o¦æ®³±¼¡A¦ü¥G¤]¯à¥¿½T°õ¦æ¡C


±`¼Æ«ü¥O

FPU ùئ³ 7 ­Ó«ü¥O¬O¥Î¨Ó§â±`¥Îªº±`¼Æ±À¤J°ïÅ|³»ºÙ¬°¡y±`¼Æ«ü¥O¡z¡C³o¨Ç±`¼Æ³£¬O¤º«Ø¦b FPU ùتº¼Æ­È¡A³£ÄÝ©ó¼È®É¹ê¼Æ¡A¨ä¦³®Ä¦ì¼Æ¹F 19 ¦ì¼Æ¡A·íµ{¦¡»Ý­n¥Î¨ì®É¥i¥H«Ü§Öªº¸ü¤J¡A¸`¬Ù®É¶¡»P°O¾ÐÅé¡C³o 7 ­Ó±`¼Æ«ü¥O¤¶²Ð¦p¤U¡G

FLD1

¸ü¤J 1.0¡C( §â 1.0 ±À¤J°ïÅ|³» )

FLDZ

¸ü¤J¹s¡C( §â 0.0 ±À¤J°ïÅ|³» )

FLDPI

¸ü¤J¶ê©P²v¡A3.141592653589793239¡C( §â £k ±À¤J°ïÅ|³» )

FLDL2T

¸ü¤J Log210¡C( §â Log210 ±À¤J°ïÅ|³» )

FLDL2E

¸ü¤J Log2e¡Ae ¬O¦ÛµM¹ï¼Æªº©³¼Æ¡C( §â Log2e ±À¤J°ïÅ|³» )

FLDLG2

¸ü¤J Log102¡C( §â Log102 ±À¤J°ïÅ|³» )

FLDLN2

¸ü¤J Loge2¡A¨Æ¹ê¤W Loge2 µ¥©ó Ln 2¡C( §â Loge2 ±À¤J°ïÅ|³» )


µù¤@¡G¨Æ¹ê¤W¦³¥t¤@­Ó«ü¥O¥i¥Hª½±µ¤ñ¸û ST ©M¹s¡A³o­Ó«ü¥O¬O FTST (¥i¥H°O¦¨ TeST)¡C

FTST «ü¥O

FTST «á¤£¶·±µ¥ô¦ó¹Bºâ¤¸¡A¤ñ¸û«áª¬ºA¦r²Õªº³]©w¤è¦¡©M FCOM ¬Û¦P¡G

¤ñ¸ûµ²ªG   C3  C0
----------------------------
ST>0       0   0
ST<0       0   1
 ST=0       1   0

FXAM

°£¤F FTST ¥i¥HÀˬd°ïÅ|³»¬O§_¬° 0 ¤§¥~¡AFXAM ¤]¥i¥H¡CFXAM ªº¯à¤O¤£¶È¦p¦¹¡AÁÙ¥i¥HÀˬd°ïÅ|³»ªº¼Æ­ÈÄÝ©ó­þ¤@Ãþ«¬¡A¥¦·|§âµ²ªG°O¿ý¦bª¬ºA¦r²Õªº C0¡BC1¡BC2¡BC3 ¥|­Ó¦ì¤¸ùØ¡A¦p¤Uªí¡CC1 ¦ì¤¸¬O ST(0) ªº²Å¸¹¡A¦pªG¬O¥¿¼Æ¡A¦¹¦ì¤¸¬° 0¡F¦pªG¬O­t¼Æ¡A¦¹¦ì¤¸¬° 1¡C

C3C2C0¤ÀÃþ
000¤£¤ä´©
001«D¼Æ­È ( NaN¡ANot a Number )
010¥¿±`¼Æ­È
011µL½a¤j
100¹s
101ST ¬OªÅªº
110¤Ï±`­È ( denormal )

¦^¨ì­º­¶¡A ¨ì²Ä¤G¤Q¤G³¹¡A ¨ì²Ä¤G¤Q¥|³¹