1. Заголовок или название темы должно быть информативным ! 2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК ! 4.НЕ используйте форум для личного общения! 5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
;(******************************************************************** *********************) ;(* *) ;(* Программа ищет максимальное и минимальное значения в матрице 20x20 *) ;(* (элемент матрицы - беззнаковое целое число размером в байт) *) ;(* Значение максимального элемента записывается в переменную max, а минимального в min *) ;(* *) ;(****************************************************************************** ***********) ;в данном примере максимальным элементом будет 255, а минимальным будет 1 masm ;используем синтаксис Макроассемблера model small ;модель памяти small (код занимает один сегмент кода, данные объединены ;в одну группу DGROUP) .data ;сегмент данных max db ? ;байтовая переменная под максимальный элемент матрицы min db ? ;байтовая переменная под минимальный элемент матрицы ;матрица размером 20x20 (статически её инициализируем) matrix db 3,4,8,9,4,25,9,7,5,251,2,12,14,34,15,16,17,56,76,78 db 3,4,8,9,4,25,9,7,5,251,2,12,14,34,15,16,17,56,76,78 db 3,4,8,9,4,25,9,7,5,251,2,12,14,34,15,16,17,56,76,78 db 3,4,8,9,4,25,9,7,5,251,2,12,14,34,15,16,17,56,76,78 db 3,4,8,9,4,25,9,7,5,251,2,12,14,34,15,16,17,56,76,78 db 3,4,8,9,4,25,9,7,5,251,2,12,14,34,15,16,17,56,76,78 db 3,4,8,9,4,25,9,7,5,251,2,12,14,34,15,16,17,56,76,78 db 3,4,8,9,4,25,9,7,5,251,2,12,14,34,15,16,17,56,76,78 db 3,4,8,9,4,25,9,7,5,251,2,12,14,34,15,16,17,56,76,78 db 3,4,8,9,4,25,9,7,5,251,2,12,14,34,15,16,17,56,76,78 db 3,4,8,9,4,25,9,7,5,251,2,12,14,34,15,16,17,56,76,78 db 3,4,8,9,4,25,9,7,5,251,2,12,14,34,15,16,17,56,76,78 db 3,4,8,9,4,25,9,7,5,251,2,12,14,34,15,16,17,56,76,78 db 3,4,8,9,4,25,9,7,5,251,2,12,14,34,15,16,17,56,76,78 db 3,4,8,9,4,25,9,7,5,251,2,12,14,34,15,16,17,56,76,78 db 3,4,8,9,4,25,9,7,5,251,2,12,14,34,15,16,17,56,76,78 db 3,4,8,9,4,25,9,7,5,251,2,12,14,34,15,16,17,56,76,78 db 3,4,8,9,4,25,9,7,5,251,2,12,14,34,15,16,17,56,76,78 db 3,4,8,9,4,25,9,7,5,251,2,12,14,34,15,16,17,56,76,78 db 3,4,8,9,4,25,9,7,5,255,2,12,14,34,15,16,17,56,76, 1 ;байтовая матрица 20x20 .code ;сегмент кода begin: ;точка входа в программу mov ax,@data ;адрес сегмента данных в регистр ax mov ds,ax ;ax в ds mov bx,0 ;bx - строки матрицы mov si,0 ;si - столбцы матрицы mov dl,matrix[bx][si] ;первый элемент матрицы в dl mov max,dl ;dl в max mov min,dl ;dl в min mov di,0 ;обнуляем счётчик строк mov cx,20 ;число для внешнего цикла (по строкам) extcycle: ;внешний цикл по строкам push cx ;сохраняем в стеке счётчик внешнего цикла mov cx,20 ;число для внутренего цикла (по столбцам) mov si,0 ;обнуляем регистр перед началом перебора значений в строке матрицы intcycle: ;внутренний цикл по столбцам mov dl,matrix[bx][si] ;очередной элемент матрицы в dl cmp min,dl ;сравниваем значения в min со значением в dl jbe next2 ;если значение в min <= очередного элемента матрицы, то идём на метку next2 mov min,dl ;иначе записываем в min значение из dl next2: ;метка "продолжения"2 cmp max, dl ;сравниваем значения в max со значением в dl jae next1 ;если значение в max >= очередного элемента матрицы, то идём на метку next1 mov max,dl ;иначе записываем в max значение из dl next1: ;метка "продолжения"1 inc si ;передвижение на следующий элемент в строке loop intcycle ;цикл по метке intcycle inc di ;инкремент di mov ax,di ;di в ax mov si,20 ;20 в si mul si ;ax умножаем на si, младшая часть результата в ax, а старшая в dx mov bx,ax ;ax в bx (поскольку элемент массива - байт и 19 * 20 < FFFFh), ;то есть результат умножения не выйдет за пределы регистра ax ;(при данной размерности матрицы и её элементов) pop cx ;восстанавливаем внешний счётчик цикла из стека loop extcycle ;цикл по метке extcycle mov ax,4c00h ;отдаём управление ОС int 21h ;вызывая прерывание Dos(21h) end begin ;конец программы
писал другану когда-то это конечно не твоя задачо но что есть... может натолкнёт на какие мысли... а писать щас у меня время нет