Устройство управления системой очистки лобового стекла автомобиля, страница 11

112  0894   21 C5 08              lxi        h,zadmas         ; занесение в пару h адреса ячейки памяти, в которой хранится ;маска

113  0897   0E FE       zader4:            mvi      c,posdr            ; защита от дребезга при отпускании клавиши                 

114  0899   DB 82       zader5:           in         portc   

115  089B   A6          ana      m

116  089C   C2 97 08             jnz       zader4

117  089F   0D            dcr       c

118  08A0   C2 99 08             jnz       zader5            

119  08A3   E1          pop      h                      ; двойная коррекция указателя стека перед экстренным выходом из ;подпрограммы, т.к. было сох

120  08A4   E1          pop      h                     

121  08A5   21 C3 08            lxi         h,klav              ; занесение в пару h адреса ячейки памяти в которой был ;сохранён код клавиши

122  08A8   7E          mov     a,m                  ; перемещение в А

123  08A9   0F            rrc                               ; сдвиг А вправо, перенос первого разряда содержимого А во ;флаг С

124  08AA   DA 07 08           jc         vstart               ; нажато "выключено" переход на ожидание включения одного ;из режимов

125  08AD   0F          rrc                               ; двойной сдвиг А вправо, перенос третьего разряда ;содержимого А во флаг С

126  08AE   0F          rrc

127  08AF   DA 3F 08            jc         twosec             ; нажато "включение со скоростью 30 движений в минуту" - ;переход на соответствующую час

128                     ; нажато "включение со скоростью 1 движение в минуту"

129  08B2   C3 35 08             jmp      minute             ; переход на соответствующую часть программы

130  08B5   E1          zader2:  pop      h                      ; ++загрузка из стека оставшегося времени задержки

131  08B6   2B          dcx      h                      ; ++декремент оставшегося времени задержки

132  08B7   7C          mov     a,h                   ; ++пересылка регистра в аккумулятор

133  08B8   B5          ora       l                       ; ++логическое ИЛИ аккумулятора и регистра

134  08B9   C2 66 08             jnz       zader1             ; ++в паре h 0 ?, нет переход на продолжение отработки ;временной задержки

135                     ; да, временная задержка отработана

136  08BC   0E 03                  mvi      c,3                   ; цикл и команды, необходимые для корректировки ;постоянной времени

137  08BE   0D          timkil:   dcr       c

138  08BF   C2 BE 08            jnz       timkil

139  08C2   C9          ret                               ; + выход из подпрограммы

140                     ;*******************************

141  08C3   00          klav:      db        0                      ; ячейка памяти, в которой хранится код нажатой клавиши

142  08C4   00          rejim:     db        0                      ; ячейка памяти, в которой хранится код включённого режима

143  08C5   00          zadmas: db        0                      ; ячейка памяти, в которой хранится маска накладываемая на ;нажимающиеся клавиши, зави

144                             end

Ассемблировано строк - 144

Всего байт           - 198

Обнаружено ошибок    - 0

                              Таблица символов

              PORTA       0080                PORTC       0082