Найти сумму положительных элементов под главной диагональю матрицы - Assembler

Узнай цену своей работы

Формулировка задачи:

Программирование в tasm. Пишет ошибку Operand types do not match. Мне нужно найти сумму положительных элементов под главной диагональю матрицы. Вот код:
.model small
.stack 100h
.data
mas dw 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
.code
start:
mov ax,@data
mov ds,ax
mov cx,10
xor ax,ax
xor si,si
sum:
mov al,mas[4]
mov ah,0
add al,mas[8]
adc ah,0
add al,mas[9]
adc ah,0
add al,mas[12]
adc ah,0
add al,mas[13]
adc ah,0
add al,mas[14]
adc ah,0
mov sum,ax
loop sum
mov ax,4c00h
int 21h
end start
------------------------------------ Ошибка вылезает в mov al,mas[4] mov al,mas[8] mov al,mas[9] mov al,mas[12] mov al,mas[13] mov al,mas[14]

Решение задачи: «Найти сумму положительных элементов под главной диагональю матрицы»

textual
Листинг программы
model   small
.code
szRow   equ 6
szCol   equ szRow
start:  mov ax,@data
    mov ds,ax
    mov ch,szRow+1
    xor dx,dx
    xor bx,bx
lRow:   mov cl,szCol+1
    xor di,di
lCol:   cmp cl,ch
    jle next
    mov al,mass[bx][di]
    test    al,80h
    jnz next
    cbw
    add dx,ax
next:   inc di
    dec cl
    jnz lCol
    add bx,szCol
    dec ch
    jnz lRow
    mov sum,dx
    mov ah,4ch
    int 21h
.data
sum dw  ?
mass    label   byte
dat =   0
    rept    szRow
        rept    szCol
        db  dat
dat =   (dat+szRow*szCol)mod 256
        endm
    endm
.stack  256
    end start

Объяснение кода листинга программы

Код выполняет следующие действия:

  1. Инициализация переменных.
  2. Переход в сегмент данных.
  3. Установка счётчика строки и столбца.
  4. Проход по всем элементам матрицы с помощью двух вложенных циклов.
  5. Проверка на положительность элемента.
  6. Если элемент положительный, то прибавляем его к сумме.
  7. После прохода по всем элементам выводим значение суммы.

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


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

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

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