Найти строки матрицы, содержащие равное количество положительных и отрицательных элементов - Assembler
Формулировка задачи:
Дана целочисленная матрица размерами 5х10. Вывести номер ее первой строки и последнего столбца содержащие равное количество положительных и отрицательных элементов(нулевые элементы матрицы не учитываются). Если таких строк нет, то вывести 0.
Заранее спасибо !
Решение задачи: «Найти строки матрицы, содержащие равное количество положительных и отрицательных элементов»
textual
Листинг программы
format PE Console include 'win32a.inc' qRows equ 5 qCols equ 10 mov edi,matr push edi mov ecx,qRows mRows: mov eax,0 push ecx mov ecx,qCols mCountCol: cmp byte [edi],0 jge mPosCol dec eax mPosCol: jle mNegCol inc eax mNegCol: inc edi loop mCountCol pop ecx cmp eax,0 je mRowsEnd loop mRows mov edx,0 jmp mSkipEnd mRowsEnd: mov edx,qRows sub edx,ecx inc edx;номер строки mSkipEnd: pop edi mov ecx,qCols mCols: mov eax,0 push ecx mov ecx,qRows push edi mCountRow: cmp byte [edi],0 jge mPosRow dec eax mPosRow: jle mNegRow inc eax mNegRow: add edi,qCols loop mCountRow pop edi inc edi pop ecx cmp eax,0 je mColsEnd loop mCols mov edx,0 jmp mSkipEnd2 mColsEnd: mov edx,qCols sub edx,ecx inc edx;номер столбца mSkipEnd2: invoke ExitProcess,0 matr db 1,3,0,5,1,3,0,5,1,3,\ 4,1,-3,2,4,1,-3,2,4,1,\ -2,0,3,-4,-2,0,3,-4,-2,0,\ -2,0,3,-4,-2,0,3,-4,-2,0,\ -2,0,3,-4,-2,0,3,-4,-2,0 include 'API\kernel32.inc' data import library kernel32,'KERNEL32.DLL' end data
Объяснение кода листинга программы
Список переменных и их значений:
- qRows - количество строк в матрице (5)
- qCols - количество столбцов в матрице (10)
- edi - указатель на текущую ячейку матрицы
- ecx - счетчик для обхода матрицы
- eax - счетчик для подсчета положительных и отрицательных элементов
- edx - номер строки или столбца
- matr - адрес начала матрицы
- API\kernel32.inc - адрес библиотеки kernel32.dll
- ExitProcess - функция из библиотеки kernel32.dll для завершения работы программы
- 1,3,0,5,1,3,0,5,1,3,4,1,-3,2,4,1,-3,2,4,1,-3,2,-2,0,3,-4,-2,0,3,-4,-2,0,3,-4,-2,0 - значения ячеек матрицы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д