Помогите, пожалуйста, написать программу (хотя бы отдельные элементы).
"Рассмотреть содержимое буфера BUF1 как двумерный массив Mass[i;j], где i - номер строки, j - номер столбца. Вычислить сумму всех элементов вектор-строки N (для всех j) для случая записи массива по столбцам.
i=0...7
j=0..2
N=3"
Если я правильно понимаю, то речь идёт об одномерном массиве длиной 24 элемента, и нужно найти сумму элементов с номерами 4, 12, 20
пока у меня получилось следующее:
;программа
LXI B,O ; иниц. суммы
LXI H, MASS ; иниц. указателя чтения
MVI D, 3 ; иниц. счётчика (не знаю, что написать, возможно, 3)
MVI C,O
;тело программы
INR D
INR D
INR D ; модиф. счётчика
LOOP1:
MOV A,M ; чтение текущего байта
ADD C ; сложение
MOV A,С; сохранение LSB
JMP NO_CARRY
INR B; учёт переноса в MSB суммы (если он есть)
NO_CARRY:
DCR D; модиф. счётчика
INX H; модиф. указателя
JNZ LOOP1
INR D
INR D
INR D
INR D
INR D
INR D
INR D
INR D; модиф. счётчика
LOOP2:
MOV A,M ; чтение текущего байта
ADD C ; сложение
MOV A,С; сохранение LSB
JMP NO_CARRY
INR B; учёт переноса в MSB суммы (если он есть)
NO_CARRY:
DCR D; модиф. счётчика
INX H; модиф. указателя
JNZ LOOP2
INR D
INR D
INR D
INR D
INR D
INR D
INR D
INR D
LOOP3:
MOV A,M ; чтение текущего байта
ADD C ; сложение
MOV A,С; сохранение LSB
JMP NO_CARRY
INR B; учёт переноса в MSB суммы (если он есть)
NO_CARRY:
DCR D; модиф. счётчика
INX H; модиф. указателя
JNZ LOOP3
только нельзя ли как-то объединить все метки, они же одинаковы?