Знакопеременная сумма квадратов элементов массива - Assembler

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

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

Доброго времени суток! Нужно написать код на ассемблере: F= a1^2+a2^2-a3^2+a4^2- ....... а1, а2, ... - элементы массива. Сложность вызывает изменение знака с + на -, кто может рассказать как в цикле менять знак? Или есть другое решение данной задачи?

Решение задачи: «Знакопеременная сумма квадратов элементов массива»

textual
Листинг программы
M1:
......; тут считаем член в AX
TEST CX,1
JZ M2
NEG AX
M2: ADD BX,AX
LOOP M1

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

  1. M1 - участок кода, где происходит вычисление суммы квадратов элементов массива;
  2. TEST CX,1 - проверка значения регистра CX на равенство 1;
  3. JZ M2 - если значение регистра CX равно 1, то происходит переход к участку кода M2;
  4. NEG AX - изменение знака регистра AX на противоположный;
  5. M2 - участок кода, где происходит сложение значения регистра BX и регистра AX;
  6. LOOP M1 - переход к повторению цикла, начиная с участка кода M1.

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

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