                   <B>    MC680x0.</B>

           ,  
           .  
           ,   
  .         ,    
   .        
 ,       ,   .

     Motorola       (68020  ), 
(68030    ),   (68030  ),   .,   
      .    ,  ,  
   ,    :

 1.             .  
    (      - 68030  ).

 2.   .       ,   ,  
 (       ).
  68020          ..
   4  ( ).
 2.1  MC68030  ,     
  ,    2  ,        .
 68060    4 .

 3.           .   ..      
       ,    
  .      ,      
 .

 4.         (bne.s, beq.s,
  ..).              
 ( moveq) -       (2 ).

 5.         
      (  4-8 )     (
  ).         68000,     
      .

 6.          (divs, divu, muls,
mulu    ..)        ,           
    68060 (  ).    
            ,    
  .

 7.            move16,
     68040.

                         .

 1.    ,    MC68020.    
256  .             MC68030       
  256 .   68040       4096 .  68060
    (8192).
       , ,   
,     ..     .
     <B></B>.

 :

prtback_loop1
    move.l (a0)+,a1
    add.l d4,a1
    move.l d0,d6
prtback_loop
    rept 20         ; 20 
    move.l (a2)+,(a1)+
    endr            ; move.l (a2)+,(a1)+
    dbf d6,prtback_loop
    dbf d5,prtback_loop1

           50 .       
.  (     .  .  ).

          ,    
          ,   .    
    chunky  to  planar    68020/68030 , 
  .

           .   ,      
        .       
  <U></U>         (
  - 100-200 ).

 :

    move.l #tableaddr1,a0
    move.l #tableperem,a1
    move.l #new,a2
loop1   move.l (a0)+,d2
    move.l (a1)+,d0
    lsr.l #3,d0
    move.l (a1),d3
    move.l (a3),d1
    add.l d1,d0
    move.d0,(a2)+
    dbf d4,loop1

     a0  a1         
 .


 2.         4  (68020),     
   .  :

    moveq.l #3,d1
    add.l d1,d0

             ,   
     ,      .
     ,        .
       cnop 0,4.

 2.1 ,    68030    
    , ..       6  
3  .    MC68060    -    CISC  -
      4 .
 : 

    add.l d0,d0
    add.l d0,d0
    add.l d0,d0
    add.l d0,d0 ;  d0  16.

        1 (!) .

 3.                         
(/       ).           
  ,        ,      
,    (movem).

     :

loop    move.l d0,d2    ; d0  d2
    add.l (a0)+,d0
    lsr.l #3,d0
    move.l d0,(a1)+
    move.l d2,d0    ;
    dbf d3,loop

  :

    move.l #80,a5   ;  a5 
c2f11   rept 2*step
    movem.l (a0)+,d0-d4/d6-d7/a2-a4 ;read 40 byte
    movem.l d0-d4/d6-d7/a2-a4,-(a1) ;write 40 byte
    add.l a5,a1         ;
    endr
    dbf d5,c2f11

         a1    (#80),   2  
            ,      
     .

 4.       (bcc.s,  cc   )   .  
      .   ,   ,   
    .       ,   
  128    (    ).        
  128 .
          :    
    ..       .   
     .      
,      dbf,        
       d0-d7     
,      4 .

 4.1              moveq,   
         0  8,     
          (move).    
        (addq)      (subq),        
,   moveq (2 ,    0  8).

 5.              !  
      ,   ,  
  ,        .         
,    .       , -  
  ,            
.          .   
 ,        , 
 .
             , ,   
    ,        ,     
  .
      ,       .
..                   
  .       , 
  ,           
.
         68000         
  ,   .
     -  <B>      </B>  !    
           , 
       68000,        
.              ,  
           .  
  ,           !  
  .

6.           (divs, divu, muls, mulu  ..) 
,    /  ,    
     lsr  (),  lsl          
.

 :

     16   4 .

    add.l d0,d0 ; 2
    add.l d0,d0 ; 4
    add.l d0,d0 ; 8
    add.l d0,d0 ; 16

        lsl.

    lsl.l #4,d0

         , ..  
          -  .   
       .

               12 ?   
.  , :

    move.l d0,d1 ; d0  d1
    add.l d0,d0 ;  2
    add.l d1,d0 ;       3 !
    add.l d0,d0 ;   6
    add.l d0,d0 ;   12

       lsr.  lsr.l #2,d0, 
  4,  lsr.l #4,d0    16.

 6.1      MC68060            
    ,    . 
        (68060.library).      , 
        ..      
 .    :

divu.l <ea>,Dr:Dq ; Dr,Dq    D0-D7
divs.l <ea>,Dr:Dq ;---'---
mulu.l <ea>,Dr:Dq ;---'---
muls.l <ea>,Dr:Dq ;---'---
movep Dx,(d16,Ay) ; Dx    D0-D7, Ay - A0-A7
movep (d16,Ay),Dx ;---'---
chk2 <ea>,Rn      ; Rn    A0-A7,D0-D7
cmp2 <ea>,Rn      ;---'---
cas2 Dc1:Dc2,Du1:Du2,(Rn1:Rn2) ;Dc,Du - D0-D7, Rn - D0-D7,A0-A7
cas Dc:Du,<ea>    ;Dc,Du - D0-D7

<ea> -    .

 7.     68040       ,   
  16 ,       .  
  :

move16  (Ax)+,(Ay)+  
move16  (xxx).l,(An) 
move16  (xxx).l,(An)+
move16  (An),(xxx).l 
move16  (An)+,(xxx).l

 Ax  An     A0-A7

          16       
16-,             , 
  .        .

 Levitator/team PowerAmiga