Проектирование микропроцессорного модуля автоматизированной информационной системы
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
готовности принтера
166cli ; запретить прерывания
167mov al, ds:[si] ; получить очередной байт из памяти
168dec si ; перевести указатель на следующий элемент
169sti ; разрешить прерывания
170out PPIA,al ; вывести текущий байт на принтер (порт А ППИ)
171mov al,LPTW1 ; управляющее слово для принтера - установить строб
172out PPIC,al
173mov al, LPTW2 ; снять строб
174out PPIC,al
175mov al,64h ; очистка регистра текущих прерываний ПКП
176out PICR1, al
iret
output ENDP
179computing PROC NEAR ; подпрограмма обработки данных
180test si,0 ; данных нет - выход
jz comp_end
mov di,si ; начать с конца массива данных
183mov al, ds:[di] ; загрузить первый элемент
184mov ch,al ; сh - максимальный элемент
185mov cl,ax ; cl - минимальный элемент
186min_max:
mov al, ds:[di] ; загрузить очередной элемент
188cmp al,ch ; сравнить полученный байт с максимальным значением
189jns next_1 ; новое значение меньше предыдущего
190mov ch,al ; иначе - обновить максимальное значение
191next_1:
192cmp cl,al ; сравнить полученный байт с миним. значением
193jns next_2 ; новое значение больше пердыдущего
194mov cl,al ; иначе - обновить минимум
195next_2:
196dec di ; перейти к след. байту
197jnz min_max ; больше нет введенных данных
198cli ; запретить прерывания
199inc si ; указать на следующий (пустой) элемент массива данных
200mov ds:[si],cx ; сохранить в массив макс. и мин. значения
201inc si ; сдвинуть указатель в массиве на последний элемент
202add ch,cl ; получить сумму мин. и макс. эл-ов
203ror ch,1 ; разделить ее пополам
204inc si ;
205mov ds:[si],ch ; сохранить полученное значение в массив
206sti ; разрешить прерывания
207comp_end: ret
208computing ENDP
209codesg ends