Дана матрица 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы