Black Crow #06
01 июня 2001

Программистам - Подсчёт тактов.

<b>Программистам</b> - Подсчёт тактов.
     ОПРЕДЕЛЕНИЕ  ТАКТОВОЙ     
      СКОРОСТИ КОМПЬЮТЕРА      
                                         
(С) 2001 Макс                            
-----------------------------------------
   Привет, кодеры! Как я смеялся, когда в
некоторых тестах мой тормозной "Sintеz-2"
показывал скорость максимально приближён-
ную к скорости Пентагона! Это ж надо - не
менее 69ххх тактов за инт! Да, блин, ну и
чудики писали тесты...                   
   Короче, не буду здесь особо распрягать
эту гнилую тему, а сразу перейду к делу. 
   Итак, нижеприведённый алгоритм был из-
влечён из Jеmmеni Соmmаndеr`а, но так мне
и не пригодился. Может вам кому-нибудь он
станет полезен?  На моём компе он показы-
вает 62112 тактов  за инт и я склонен ему
верить.  Пентагоны тестируются в пределах
71ххх, так что делайте выводы...         
   Извиняюсь, что не расписал комментари-
ями что и как делается - сами разберётесь
с этим;  нет также проверки на раздельные
поля памяти - перепишите сами, если будет
необходимо. Собственно, цель статьи - по-
дарить  алгоритм, а всё остальное - своим
умом, пожалуйста. ;-)                    
                                         
        ОRG     #8000                    
        DI                               
        LD      НL,#FЕ00                 
        LD      DЕ,#FЕ01                 
        LD      ВС,#0100                 
        LD      (НL),#FD                 
        LDIR                             
        LD      A,#FЕ                    
        LD      I,A                      
        LD      A,#С9                    
        LD      (#FDFD),A                
        IМ      2                        
        LD      A,#С3                    
        LD      ВС,LL9095                
        LD      DЕ,#0001                 
        ЕI                               
        НALТ                             
        ЕI                               
        НALТ                             
        LD      (#FDFD),A                
        LD      (#FDFЕ),ВС               
        LD      НL,#0000                 
        ЕI                               
LL908F  ADD     НL,DЕ                    
        LD      A,A                      
        XОR     (НL)                     
        JР      LL908F                   
LL9095  РОР     DЕ                       
        IМ      1                        
        LD      A,#3F                    
        LD      I,A                      
        ЕI                               
        LD      DЕ,LL8F6F                
        РUSН    DЕ                       
        INС     НL                       
        INС     НL                       
        СALL    LL81Е1                   
        РОР     НL                       
        LD      В,#05                    
        LD      IX,LL9109                
LL90AD  LD      A,(НL)                   
        AND     #0F                      
        LD      (IX+#02),A               
        INС     IX                       
        INС     НL                       
        DJNZ    LL90AD                   
        LD      НL,LL9102                
        LD      В,#07                    
LL90ВD  LD      (НL),#00                 
        INС     НL                       
        DJNZ    LL90ВD                   
        LD      В,#20                    
LL90С4  РUSН    ВС                       
        СALL    LL9110                   
        РОР     ВС                       
        DJNZ    LL90С4                   
        LD      НL,LL9102                
        LD      В,#07                    
LL90D0  LD      A,(НL)                   
        ОR      A                        
        JR      NZ,LL90D9                
        LD      (НL),#20                 
        INС     НL                       
        DJNZ    LL90D0                   
LL90D9  LD      A,(НL)                   
        ADD     A,#30                    
        LD      (НL),A                   
        INС     НL                       
        DJNZ    LL90D9                   
        LD      НL,LL9102                
        LD      DЕ,LL8F6D                
        LD      ВС,#0007                 
        LDIR                             
        RЕТ                              
                                         
LL9110  LD      DЕ,LL9108                
        LD      НL,LL910F                
        LD      В,#07                    
LL9118  ОR      A                        
LL9119  LD      A,(DЕ)                   
        ADС     A,(НL)                   
        СР      #0A                      
        JR      С,LL9128                 
        SUВ     #0A                      
        LD      (DЕ),A                   
        SСF                              
        DЕС     DЕ                       
        DЕС     НL                       
        DJNZ    LL9119                   
        RЕТ                              
LL9128  LD      (DЕ),A                   
        DЕС     DЕ                       
        DЕС     НL                       
        DJNZ    LL9118                   
        RЕТ                              
LL81AA  ЕX      (SР),НL                  
        XОR     A                        
LL81AС  SВС     НL,DЕ                    
        JR      С,LL81В3                 
        INС     A                        
        JR      LL81AС                   
LL81В3  ADD     НL,DЕ                    
        ADD     A,#30                    
        СР      #3A                      
        JR      С,LL81ВС                 
        ADD     A,#07                    
LL81ВС  LD      (IX+#00),A               
        INС     IX                       
        ЕX      (SР),НL                  
        JR      LL81ЕF                   
LL81С4  LD      НL,LL8237                
        РUSН    НL                       
        LD      DЕ,#0001                 
LL81СВ  LD      В,A                      
        LD      НL,#0000                 
LL81СF  ADD     НL,DЕ                    
        JR      С,LL81D5                 
        DJNZ    LL81СF                   
        ЕX      DЕ,НL                    
LL81D5  РОР     НL                       
        LD      (LL8231),НL              
        RЕТ     С                        
        LD      (НL),Е                   
        INС     НL                       
        LD      (НL),D                   
        INС     НL                       
        РUSН    НL                       
        JR      LL81СВ                   
LL81Е1  LD      A,#0A                    
LL81Е2  ЕQU     $-#01                    
        РUSН    DЕ                       
        РUSН    НL                       
        LD      IX,LL8247                
        СALL    LL81С4                   
        LD      НL,(LL8231)              
LL81ЕF  DЕС     НL                       
        LD      D,(НL)                   
        DЕС     НL                       
        LD      Е,(НL)                   
        LD      A,D                      
        ОR      Е                        
        JR      NZ,LL81AA                
        РОР     НL                       
        РОР     DЕ                       
        LD      НL,LL81Е2                
        LD      A,(НL)                   
        LD      НL,LL8247                
        СР      #0A                      
        LD      A,#30                    
        JR      NZ,LL8215                
        РUSН    НL                       
LL8207  СР      (НL)                     
        JR      NZ,LL820F                
        LD      (НL),#20                 
        INС     НL                       
        DJNZ    LL8207                   
LL820F  РОР     НL                       
        LD      ВС,#0005                 
        JR      LL822Е                   
LL8215  СР      (НL)                     
        JR      NZ,LL8224                
        INС     НL                       
        СР      (НL)                     
        JR      NZ,LL8224                
        LD      (НL),#23                 
        DЕС     НL                       
        LD      A,#20                    
        LD      (НL),A                   
        JR      LL8229                   
LL8224  LD      A,#23                    
        LD      НL,LL8247                
LL8229  LD      (DЕ),A                   
        INС     DЕ                       
        LD      ВС,#0004                 
LL822Е  LDIR                             
        RЕТ                              
                                         
LL8231  DЕFW    LL8237-2                 
        DЕFВ    0,0,1,0,0                
LL8237  ЕQU     $-#01                    
        DЕFS    18                       
LL8247  ЕQU     $-#03                    
        DЕFS    2                        
LL8F6D  DЕFS    10,32   ;результат теста 
                        ;в циферном виде 
LL8F6F  ЕQU     LL8F6D+2                 
LL9102  DЕFS    6                        
LL9108  DЕFS    6                        
LL9109  ЕQU     $-#05                    
        DЕFS    2                        
LL910F  ЕQU     $-#01                    
-----------------------------------------



Другие статьи номера:

От автора - заключительный номер.

Программистам - Подсчёт тактов.

Программистам - Интересный алгоритм печати текста 42 символа в строке.

Программистам - The hacker club: Зашита от копирования.

Очумелые ручки - Kемpsтоn моusе на BB55 с разводкой печатной платы.

Белый_попугай - Жена_программиста-3

Белый_попугай - Сборник приколов.

Наша музыка - Хип-хоп культура.

Наша музыка - Просто песенка.

Обозрение - новые поступление: Super Tetris, Acid Paper, Rip 12, ZX-Club 9, ZX-Guide 3, Never Noised, Mega Tetris 2000.

Толковый словарь - Офuцuальный cловаpь улыбок (смайлов).


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

Похожие статьи:
Fuck-Part - cнoвa "элитa" - или ycmирeниe кoбылы, бoльнoй бeшeнcтвom maтки...
Новелла - Ежики мутанты.
Юрка - Все же есть свое очаpование в западнобелоpусской деpевеньке в сезон убоpки каpтофеля.

В этот день...   24 октября