"justify"> out PPIC, al
175 mov al, 64h; очищення регістра поточних переривань ВКП
176 out PICR1, al
iret
output ENDP
179 computing PROC NEAR; підпрограма обробки даних
180 test si, 0; даних немає - вихід
jz comp_end
mov di, si; почати з кінця масиву даних
183 mov al, ds: [di]; завантажити перший елемент
184 mov ch, al; сh - максимальний елемент
185 mov cl, ax; cl - мінімальний елемент
186 min_max:
mov al, ds: [di]; завантажити черговий елемент
188 cmp al, ch; порівняти отриманий байт з максимальним значенням
189 jns next_1; нове значення менше попереднього
190 mov ch, al; інакше - оновити максимальне значення
191 next_1:
192 cmp cl, al; порівняти отриманий байт з мінім. значенням
193 jns next_2; нове значення більше пердидущего
194 mov cl, al; інакше - оновити мінімум
195 next_2:
196 dec di; перейти до слід. байту
197 jnz min_max; більше немає введених даних
198 cli; заборонити переривання
199 inc si; вказати на наступний (порожній) елемент масиву даних
200 mov ds: [si], cx; зберегти масив макс. і мін. значення
201 inc si; зрушити покажчик у масиві на останній елемент
202 add ch, cl; отримати суму хв. і макс. ел-ів
203 ror ch, 1; розділити її навпіл
204 inc si;
205 mov ds: [si], ch; зберегти отримане значення в масив
206 sti; дозволити переривання
207 comp_end: ret ...