01 июня 2001

     ОПРЕДЕЛЕНИЕ  ТАКТОВОЙ     
      СКОРОСТИ КОМПЬЮТЕРА      
                                         
(С) 2001 Макс                            
-----------------------------------------
   Привет, кодеры! Как я смеялся, когда в
некоторых тестах мой тормозной "Sintez-2"
показывал скорость максимально приближён-
ную к скорости Пентагона! Это ж надо - не
менее 69ххх тактов за инт! Да, блин, ну и
чудики писали тесты...                   
   Короче, не буду здесь особо распрягать
эту гнилую тему, а сразу перейду к делу. 
   Итак, нижеприведённый алгоритм был из-
влечён из Jemmeni Commander`а, но так мне
и не пригодился. Может вам кому-нибудь он
станет полезен?  На моём компе он показы-
вает 62112 тактов  за инт и я склонен ему
верить.  Пентагоны тестируются в пределах
71ххх, так что делайте выводы...         
   Извиняюсь, что не расписал комментари-
ями что и как делается - сами разберётесь
с этим;  нет также проверки на раздельные
поля памяти - перепишите сами, если будет
необходимо. Собственно, цель статьи - по-
дарить  алгоритм, а всё остальное - своим
умом, пожалуйста. ;-)                    
                                         
        ORG     #8000                    
        DI                               
        LD      HL,#FE00                 
        LD      DE,#FE01                 
        LD      ВС,#0100                 
        LD      (HL),#FD                 
        LDIR                             
        LD      A,#FE                    
        LD      I,A                      
        LD      A,#С9                    
        LD      (#FDFD),A                
        IM      2                        
        LD      A,#С3                    
        LD      ВС,LL9095                
        LD      DE,#0001                 
        EI                               
        HALT                             
        EI                               
        HALT                             
        LD      (#FDFD),A                
        LD      (#FDFE),ВС               
        LD      HL,#0000                 
        EI                               
LL908F  ADD     HL,DE                    
        LD      A,A                      
        XOR     (HL)                     
        JP      LL908F                   
LL9095  РОР     DE                       
        IM      1                        
        LD      A,#3F                    
        LD      I,A                      
        EI                               
        LD      DE,LL8FбF                
        PUSH    DE                       
        INC     HL                       
        INC     HL                       
        CALL    LL81Е1                   
        РОР     HL                       
        LD      В,#05                    
        LD      IX,LL9109                
LL9OAD  LD      A,(HL)                   
        AND     #0F                      
        LD      (IX+#02),A               
        INC     IX                       
        INC     HL                       
        DJNZ    LL9OAD                   
        LD      HL,LL9102                
        LD      В,#07                    
LL90BD  LD      (HL),#00                 
        INC     HL                       
        DJNZ    LL90BD                   
        LD      В,#20                    
LL90С4  PUSH    ВС                       
        CALL    LL9110                   
        РОР     ВС                       
        DJNZ    LL90С4                   
        LD      HL,LL9102                
        LD      В,#07                    
LL90D0  LD      A,(HL)                   
        OR      A                        
        JR      NZ,LL90D9                
        LD      (HL),#20                 
        INC     HL                       
        DJNZ    LL90D0                   
LL90D9  LD      A,(HL)                   
        ADD     A,#30                    
        LD      (HL),A                   
        INC     HL                       
        DJNZ    LL90D9                   
        LD      HL,LL9102                
        LD      DE,LL8FбD                
        LD      ВС,#0007                 
        LDIR                             
        RET                              
                                         
LL9110  LD      DE,LL9108                
        LD      HL,LL910F                
        LD      В,#07                    
LL9118  OR      A                        
LL9119  LD      A,(DE)                   
        ADC     A,(HL)                   
        СР      #0A                      
        JR      С,LL9128                 
        SUB     #0A                      
        LD      (DE),A                   
        SCF                              
        DEC     DE                       
        DEC     HL                       
        DJNZ    LL9119                   
        RET                              
LL9128  LD      (DE),A                   
        DEC     DE                       
        DEC     HL                       
        DJNZ    LL9118                   
        RET                              
LL81AA  ЕХ      (SP),HL                  
        XOR     A                        
LL81АС  SBC     HL,DE                    
        JR      С,LL81В3                 
        INC     A                        
        JR      LL81АС                   
LL81В3  ADD     HL,DE                    
        ADD     A,#30                    
        СР      #3A                      
        JR      С,LL81ВС                 
        ADD     A,#07                    
LL81ВС  LD      (IX+#00),A               
        INC     IX                       
        ЕХ      (SP),HL                  
        JR      LL81EF                   
LL81С4  LD      HL,LL8237                
        PUSH    HL                       
        LD      DE,#0001                 
LL81СВ  LD      В,A                      
        LD      HL,#0000                 
LL81CF  ADD     HL,DE                    
        JR      С,LL81D5                 
        DJNZ    LL81CF                   
        ЕХ      DE,HL                    
LL81D5  РОР     HL                       
        LD      (LL8231),HL              
        RET     С                        
        LD      (HL),Е                   
        INC     HL                       
        LD      (HL),D                   
        INC     HL                       
        PUSH    HL                       
        JR      LL81СВ                   
LL81Е1  LD      A,#0A                    
LL81Е2  EQU     $-#01                    
        PUSH    DE                       
        PUSH    HL                       
        LD      IX,LL8247                
        CALL    LL81С4                   
        LD      HL,(LL8231)              
LL81EF  DEC     HL                       
        LD      D,(HL)                   
        DEC     HL                       
        LD      Е,(HL)                   
        LD      A,D                      
        OR      Е                        
        JR      NZ,LL81AA                
        РОР     HL                       
        РОР     DE                       
        LD      HL,LL81Е2                
        LD      A,(HL)                   
        LD      HL,LL8247                
        СР      #0A                      
        LD      A,#30                    
        JR      NZ,LL8215                
        PUSH    HL                       
LL8207  СР      (HL)                     
        JR      NZ,LL820F                
        LD      (HL),#20                 
        INC     HL                       
        DJNZ    LL8207                   
LL820F  РОР     HL                       
        LD      ВС,#0005                 
        JR      LL822Е                   
LL8215  СР      (HL)                     
        JR      NZ,LL8224                
        INC     HL                       
        СР      (HL)                     
        JR      NZ,LL8224                
        LD      (HL),#23                 
        DEC     HL                       
        LD      A,#20                    
        LD      (HL),A                   
        JR      LL8229                   
LL8224  LD      A,#23                    
        LD      HL,LL8247                
LL8229  LD      (DE),A                   
        INC     DE                       
        LD      ВС,#0004                 
LL822Е  LDIR                             
        RET                              
                                         
LL8231  DEFW    LL8237-2                 
        DEFB    0,0,1,0,0                
LL8237  EQU     $-#01                    
        DEFS    18                       
LL8247  EQU     $-#03                    
        DEFS    2                        
LL8FбD  DEFS    10,32   ;результат теста 
                        ;в циферном виде 
LL8FбF  EQU     LL8FбD+2                 
LL9102  DEFS    6                        
LL9108  DEFS    6                        
LL9109  EQU     $-#05                    
        DEFS    2                        
LL910F  EQU     $-#01                    
-----------------------------------------



Other articles:


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Similar articles:
Programming - a course of study assembler Wlodek Black, continued.
Laboratory - The algorithm of division and multiplication of large numbers.

В этот день...   23 November