Page 267 - 4503
P. 267

формуватимуться  становитиме  0,1..26,6  с.  Це  звісно
           приблизно,  оскільки    не  враховується  час  на  виконання
           команд зовнішніх циклів.
                У цій програмі робочий регістр застосовують, як бачимо,
           для ініціалізації величини СOUNT і організації  внутрішнього
           циклу  тривлістю  1  мілісекунда.  Саме  тому  його  не  можна
           використати для зберігання значення К. Власне кажучи, якщо
           б основній програмі якимось чином було б відомо про регістр
           h’35’,  в  якому  зберігається    величина  К,  то  вона  «могла»  б
           передавати  її безпосередньо на адресу цього регістра. Однак
           правильним  тоном  у  створенні  підпрограм  —  це  якомога
           менше        зачіпати  зовнішнє  її  оточення,  тобто  максимальна
           автономність  від  основної  програми.  З  цієї  точки  зору
           підпрограма  DELAY_К100MS  не  є  показовою,  оскільки
           використовує два регістри памяті і впливає на вміст робочого
           регістру.
                Для прикладу, розглянемо програму 8.5, яка забезпечує
           такий  самий  алгоритм,  тільки  блок  формування  100–
           мілісекундної затримки викликається у ній як існуюча, тобто
           вкладена підпрограма.

                Програма  8.5.  Альтернативний  варіант  підпрограми
           формування затримки тривалістю К 100мс

           ;--------------------------------------------------------------------------------
                    ;  ФУНКЦІЯ  :  формування  затримки  тривалістю  К 100
           мс
                                     ; частота 4 МГц
                ; ПРИКЛАД: К=100, затримка 10с
                ; ВХІД : К в W . Від 1 до 256
                ; ВИХІД : змінюються ознаки і вміст W.  Реґістри  h’34’ і
                                          ;  h’35’ онулюються
           ;--------------------------------------------------------------------------------
                К equ h’35’; тимчасова змінна для К

                                         267
   262   263   264   265   266   267   268   269   270   271   272