Консультация № 183640
16.06.2011, 12:22
88.88 руб.
0 1 1
Уважаемые эксперты! Пожалуйста, ответьте на вопрос: Дана целочисленная матрица в байтовом формате по строкам. Все операции обработки матрицы реализовать только циклами. При необходимости использовать макросы. Размерность 4х4. Найти общую сумму элементов последнего столбца и последней строки. Прошу как можно подробнее расписать комментарии к программе. Заранее благодарен.

Обсуждение

давно
Посетитель
7438
7205
16.06.2011, 14:00
общий
это ответ
Здравствуйте, Посетитель - 377712!
Программа ничего не вводит и не выводит.
Матрица задана в программе, результат смотрим в отладчике.
Байты-числа знаковые, т.е. должны быть в интервале -128<N<+127.
Будут вопросы - задавайте в мини-форуме.

[code h=207];Дана целочисленная матрица в байтовом формате по строкам.
;Все операции обработки матрицы реализовать только циклами.
;При необходимости использовать макросы. Размерность 4х4.
;Найти общую сумму элементов последнего столбца и последней строки.

.model small

.stack 100h

N equ 4 ;размерность матрицы

.data
array db 3, 100, 3, 4;примерная матрица 4х4
db -1, -2,-3, -4
db 0, 19, 2, 3
db -20, 120, 1, 127

.code
main proc
mov ax, @DATA ;настроим сегментный регистр
mov ds, ax ;на сегмент данных

xor dx, dx ;искомая сумма

;посчитаем сумму элементов последненго столбца
mov si, N-1 ;индекс столбца
mov cx, N ;число элементов в слолбце
xor bx, bx ;база строки матрицы (0, 4, 8, 12)
LastColumnsSum:
mov al, array[bx+si]; очередной байт
cbw ;превратим знаковый байт al в знаковое слово ax
add dx, ax ;складываем
add bx, N ;на следующую строку
loop LastColumnsSum ;по всем элементам столбца

;добавим сумму элементов последней строки
xor si, si ;индекс столбца
mov cx, N ;число элементов в строке
mov bx, N*(N-1) ;база последней строки матрицы (12)
LastRowSum:
mov al, array[bx+si]; очередной байт
cbw ;превратим знаковый байт al в знаковое слово ax
add dx, ax ;складываем
inc si ;на следующий элемент в строке
loop LastRowSum ;по всем элементам столбца
mov ax, dx ;искомая сумма в регистре AX

mov ax, 4c00h ;выход в ДОС
int 21h

main endp

end main
[/code]
Об авторе:
"Если вы заметили, что вы на стороне большинства, —
это верный признак того, что пора меняться." Марк Твен
Форма ответа