.


:




:

































 

 

 

 





, .

, , .

, , ,

8086, . , , .

, . . , , . , , , .


8086

.

. 8086 14 ( 1), , . . : AX, BX, CX, DX; SP, BP, SI, DI; CS, SS, DS, ES; IP FLAGS.

 

     
                 
AH AL AX     SP
BH BL BX     BP
CH CL CX     SI
DH DL DX     DI
           
     
                 
CS       IP
DS       FLAGS
ES        
SS        

 

1.

 

CS, DS, SS ES. CS . , (IP), . SS . DS . , , , . ES , , DS. , . ES .

AX, BX, CX DX. . , . AX , /, . BX , , . , BX . CX , , , . DX . /, AX. , . , , AX - AH AL. . 8- 16- .

. . SP - . . SS. BP - . ( , ). , . SI - . , DS. DI - . , SI. ES.

IP. IP . CS IP. IP , , .

FLAGS. FLAGS ( 16), (. 2).

 

                               
        OF DF IF TF SF ZF   AF   PF   CF

 

. 2. FLAGS

FLAGS

OF . 1, .

DF . : 0 , 1 .

IF . , IF=1. IF=0, .

TF . TF=1, INT 3 . - .

SF . SF=1, 1. , SF=0 , SF=1 .

ZF . ZF=1, .

AF . 1 .

PF . 1,

CF . 1, ; , .

FLAGS . FLAGS. POPF, IRET, SAHF, , PUSHF, LAHF .

.

1, .. 220 , 16 . . 216 (64 65535 ), . : , CS; , , , DS; , , , SS, , ES. , .

16 ( ). , 16. 16 .

, . , IP . , - SP. . . ( DS) ( ES).

, , , . , . 20 , 1 .

.

1. INC ( 1) MOV , .

1.

8086

INC AX 8 16 . .
MOV AX,5 . , . .
INC [1000] . ( ) . .
INC [BP], INC [SI] BX, BP, SI, DI. BP - , . ().
INC [BP + A], INC B[BX] 8- 16- BX BP. ().
INC A[SI], INC [DI + B] 8- 16- SI DI. . , , .
INC [BX][SI], INC [BP + DI] (BX BP) (SI DI) . BP - , . (), , .
INC [BX][SI + 10], INC A[BP + SI], INC X[BX][DI] 8- 16- , (BX BP) (SI DI) . BP - , . ().
- DS:SI, ES:DI.

.

, . LIFO (" - "), / (stack - , , ). . SP - . , - , "" . (TOS). SP SS BP SS, SP , SS - . SS () . SP , .

. . BP , , .

.

, , , . , . : . , - , . : , .., - - / .

, . , , .

IF TF, . , , : Flags ( pushf); CS ( push CS); IP ( push IP); IF TF.

IP CS ( ). , : IP ( pop IP); CS ( pop CS); Flags ( popf).

, IP CS, , . 0...255, .

 

.

FPU.

: , .

, , . , 10 , 2. 0,625 = 0,101b. , , 0,625 = 0,101b = 1,01b * 2-1.

, 1,01 -1. , 1, , 1 . , , , . IEEE, Intel

  • 31 , 30 23 8- + 127, 22 0 23- ;
  • 63 , 62 52 11- + 1024, 51 0 52- ;
  • 79 , 78 64 15- + 16 383, 63 0 64- ( 63 1).

3

3..

FPU

    32768 ¸ 32767
    2*109 ¸ 2*109
    -9*1018 ¸ 9*1018
    -99..99 ¸ +99..99 (18 )
    1.18*10-38 ¸ 3.40*1038
  1516 2.23*10-308 ¸ 1.79*10308
    3.37*10-4932 ¸ 1.18*104932

 

 

FPU 80- , 32- 64- .

IEEE ,

  • ;
  • 1, ;
  • 0, 0, 1;
  • 1, 0, 1;
  • 0 ( 10-16445 );
  • 1, ( 80- ) 1, 0, 1;
  • - SNAN () 1, 0 ( 80- 10), ;
  • - QNAN () 1, ( 80- ) 1, . QNAN;

.

FPU , 16 .

FPU

FPU .

(R0 R7) , . , ST, ST(1), ST(2) ST(7). , , - R5 ST (. 13), R4, ST, R5 ST(1) ..

 

 

     
                   
R0 ST(5)      
R1       ST(6)      
R2       ST(7)      
R3       ST TOP = 3    
R4       ST(1)      
R5       ST(2)      
R6       ST(3)      
R7       ST(4)      
           
                                           
SW B C3 TOP C2 C1 C0 ES SF PE UE OE ZE DE IE          
           
                                           
CW ´ ´ ´ ´ RC PC ´ ´ PM UM OM ZM DM IM          
           
                                           
TW R7 R6 R5 R4 R3 R2 R1 R0          
             
IP        
             
DP        
                                                     

 

. 13. FPU

SR FPU. .. .

FPU 8087, ES;

0 7, , R0 R7 ;

3, 2, 1, 0 , ;

ES 1, , SF, PE, UE, OE, ZE, DE, IE , ;

SF ; 1 = 1, ( ), 1 = 0, ( );

;

UE ;

;

ZE ;

DE ;

IE (SF = 1) .

0 3 , , , ;

fstsw ax

sahf

FLAGS , 0 CF, 2 PF, 3 ZF ( 2 ).

0 5 , FPU. .

CR FPU.

IC ( 8087 80287 +);

RC , : 00 , 01 , 10 , 11 .

PC , : 00 (32- ), 01 , 10 (64- ), 11 (80- )

, UM, OM, ZM, DM, IM , , , , , .

0 5 CR , , .

TW , , 15 14 R7, 13 12 R6 .. () 11, . 00 , , 01 , 10 , , , .

FIP FDP ( FINIT, FCLEX, FLDCW, FSTCW, FSTSW, FSTSWAX, FSTENV, FLDENV, FSAVE, FRSTOR FWAIT) .

FPU

FPU , . SR 1 , CR , INT 10h ( NE CR0 1) IRQ13 (INT 75h), SR, ( FIP, FDP) , , . CR 1,

  • RC ( . 1/6 ). 1 , 0 , 1 ;
  • , , ;
  • ;
  • ( );
  • , ;
  • 12.

 

12. ,

SNAN QNAN
NAN C0 = C2 = C3 = 1
0/0
FPREM FPREM1, 0 C2 = 0
C2 = 0
, x < 0, log(x+1), x < -1
FBSTP, -SRS , NAN, 18
FXCH,

 

1. 1 8086. , 8086 8086 , . , FLAGS 8088 , :? ; * ; 0 - ; 1 - .

, .

2 2 . , .





:


: 2016-10-06; !; : 989 |


:

:

: , .
==> ...

1641 - | 1607 -


© 2015-2024 lektsii.org - -

: 0.057 .