Числа, находящиеся ниже главной диагонали марицы А, заменить их дополнением - Assembler
Формулировка задачи:
Помогите пожалуйста решить задачу:
Задана матрица целых чисел А размерностью 8х8. Числа, находящиеся ниже главной диагонали марицы А заменить их дополнением. Оформить в виде процедуры.
Решение задачи: «Числа, находящиеся ниже главной диагонали марицы А, заменить их дополнением»
textual
Листинг программы
mov eax,7 row:mov ecx,eax fill:neg byte[A+eax*8+ecx-1] loop fill dec eax jnz row
Объяснение кода листинга программы
- mov eax,7 — в начало программы присваиваем переменной eax значение 7
- row:mov ecx,eax — в начале цикла присваиваем переменной ecx значение переменной eax (7)
- *fill:neg byte[A+eax8+ecx-1]** — в каждой итерации цикла значение переменной ecx (которое равно 7) используется для вычисления смещения для элемента массива A, на который будет производиться запись. Знак
neg
используется для получения отрицательного значения, которое будет использовано как дополнение для элемента массива. - loop fill — выполняется до тех пор, пока значение переменной eax (которое уменьшается на 1 после каждой итерации) больше 1
- dec eax — уменьшаем значение переменной eax на 1 после каждой итерации
- jnz row — если значение переменной eax больше 0, то переходим к началу цикла (к команде
row
) Таким образом, в данном коде выполняется замена чисел, находящихся ниже главной диагонали матрицы А, их дополнением.