Дана матрица NxN. Найти сумму элементов главной и побочной диагонали - Assembler
Формулировка задачи:
Прошу помощи в решении данных задач б) Дана матрица NxN. Найти сумму элементов главной и побочной диагонали
Решение задачи: «Дана матрица NxN. Найти сумму элементов главной и побочной диагонали»
textual
Листинг программы
lea esi, [fh] ;esi = &fh[0, 0] mov edi, esi ;edi = &fh[3, 0] add edi, (N-1)*N xor edx, edx ;SumGlav=0 mov ebx, edx ;SumPoboch=0 mov ecx, N ;for(ecx=N; ecx != 0; ecx--) .for: mov al, [esi] ; SumGlav += *esi cbw ;т.к. элементы матрицы размером 1 байт, а сумма накапливается в long int (4 байт) cwde ; то двумя расширениями знака приводим число в AL к размеру 4 байта (в регистре eax) add edx, eax add esi, (N+1) ;esi += (N+1) - т.е. переход к следующей строки и на 1 элемент правее mov al, [edi] ;аналогично, только для побочной диагонали cbw cwde add ebx, eax sub edi, (N-1) loop .for
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д