Platinum #01
08 августа 1996

                       
   Предлагаем вашему вниманию   
очередной раздел нашего журнала 
   КОНКУРС ЮНЫХ ПРОГРАММИСТОВ   
                                
  Прежде всего небольшая ошибка 
в выполнении команд LDIR и LDDR.
Попробуйте сказать , будет ли   
работать такая процедура:       
                                
        ORG     30000           
        LD      HL,M2           
        LD      DE,M1+1         
        LD      BC,65535        
        LDDR                    
        DEFS    198,0           
M1      DEFB    0               
        DEFB    #5Е             
        JP      CONTINUE        
        DEFS    195,0           
M2      DEFS,0                  
                                
 Результатом работы этой        
маленькой програмки будет выход 
по адресу CONTINUE с включением 
режима прерываний IM 2.         
 Все дело в том , что процессор 
при выполнении команды LDDR     
после переброски очередного     
байта снова перечитывает код    
команды и после переброски бай- 
та  #5Е вместо LDDR процессор   
примет команду IM 2 ну a коман- 
да JP уже переброшена           
 Примечание : в данном примере  
перебрасывается 200 байт.       
В регистре BC количество якобы  
перебрaсывaемых байт - заведомо 
больше количества байт между    
первым байтом команды LDDR и    
 меткой M1                      
 Массив DEFS 198,0 может быть   
заполнен например программой    
инициализации чего-либо .       
 Массив DEFS 195,0 может быть   
программой обработки прерываний 
или чем нибудь другим .         
 Команду JP CONTINUE можно за-  
менить любой другой .           
 теперь нужно сказать про эле-  
мент DEFB #5Е                   
 Это второй байт команды кото-  
рая будет выполняться вместо    
LDDR после отработки процедуры  
в данном случае это будет       
команда  IM 2                   
 ЕСЛИ ВМЕСтО #5Е ПОДСтАВИтЬ     
 #В8 ПОСЛЕДСтВИЯ МОГУт БЫтЬ     
 НЕПРЕДСКАЗУЕМЫМИ (ПОЧЕМУ ?)    
                                
     А тЕПЕРЬ МИНИ-ЗАДАЧКА      
                                
 Что будет в регистре ВС после  
выполнения следующей процедуры  
                                
        ORG     30000           
        LD      BC,32           
        LD      DE,M2+1         
        LD      HL,M3           
M2      LDIR                    
        JP      CONTINUE        
M3      DEFB    #XX             
        DEFS    99,#XX          
(#XX НАПРИМЕР РАВЕН #79)        
 И каковы будут результаты ее   
работы ?                        
                                
 Наиболее полные ответы будут   
оценены , a их авторы получат   
небольшие призы !               
  Крупных хаккеров просьба не   
 беспокоиться ,это конкурс для  
       начинающих !!!!          
                                
 Ответы присылайте по адресу    
                                
 г.тОМСК   634062               
 ИРКУтСКИЙ тРАКт  128-А         
 КВАРтИРА 6                     
 CЛОБОДЯН АЛЕКСАНДРУ            
 ВЛАДИМИРОВИЧУ                  
                                
         C пометкой:            
    "конкурс YOUNG CODER"       
                                
   ДО НОВЫХ ВСтРЕЧ ДРУЗЬЯ !     
       03.08.96    NIKANOR.     
                          



Other articles:


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

Similar articles:
Thought for the Day - In 1953, I realized that a straight line leads to the demise of humanity.

В этот день...   3 December