Найти сумму положительных элементов, находящихся под главной диагональю матрицы - Assembler
Формулировка задачи:
Нашел как найти сумму массива.
Подскажите как найти сумму положительных элементов, находящихся под главной диагональю
.model small .stack 100h .data mas dw 0,1,2,3,4,5,6,7,8,9 .code start: mov ax, @data mov ds, ax mov cx,10 xor ax,ax xor si,si sum: add ax,mas[si] add si,2 loop sum mov ax,4c00h int 21h end start
Решение задачи: «Найти сумму положительных элементов, находящихся под главной диагональю матрицы»
textual
Листинг программы
mov al,mas[5] mov ah,0 add al,mas[10] adc ah,0 add al,mas[11] adc ah,0 add al,mas[15] adc ah,0 add al,mas[16] adc ah,0 add al,mas[17] adc ah,0 add al,mas[20] adc ah,0 add al,mas[21] adc ah,0 add al,mas[22] adc ah,0 add al,mas[23] adc ah,0 mov sum,ax
Объяснение кода листинга программы
mov al,mas[5]— из массиваmasберётся значение элемента с индексом 5 и помещается в регистрal.mov ah,0— в регистрahзаписывается значение 0.add al,mas[10]— к значению в регистреalприбавляется значение элемента массиваmasс индексом 10.adc ah,0— к значению в регистреahприбавляется значение 0.add al,mas[11]— к значению в регистреalприбавляется значение элемента массиваmasс индексом 11.adc ah,0— к значению в регистреahприбавляется значение 0.add al,mas[15]— к значению в регистреalприбавляется значение элемента массиваmasс индексом 15.adc ah,0— к значению в регистреahприбавляется значение 0.add al,mas[16]— к значению в регистреalприбавляется значение элемента массиваmasс индексом 16.adc ah,0— к значению в регистреahприбавляется значение 0.add al,mas[17]— к значению в регистреalприбавляется значение элемента массиваmasс индексом 17.adc ah,0— к значению в регистреahприбавляется значение 0.add al,mas[20]— к значению в регистреalприбавляется значение элемента массиваmasс индексом 20.adc ah,0— к значению в регистреahприбавляется значение 0.add al,mas[21]— к значению в регистреalприбавляется значение элемента массиваmasс индексом 21.adc ah,0— к значению в регистреahприбавляется значение 0.add al,mas[22]— к значению в регистреalприбавляется значение элемента массиваmasс индексом 22.adc ah,0— к значению в регистреahприбавляется значение 0.add al,mas[23]— к значению в регистреalприбавляется значение элемента массиваmasс индексом 23.adc ah,0— к значению в регистреahприбавляется значение 0.mov sum,ax— в переменнуюsumзаписывается значение регистраax.