Проектирование микропроцессорного модуля автоматизированной информационной системы

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

готовности принтера

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