ХАНДЫФАР

В следующем примере программы мы выполним сложение всех элементов массива. Результат сложения будет в регистре аккумуляторе.

  1. ; Автор: Довгополов Евгений Сергеевич
  2. array:__db 01h, 02h, 03h, 04h, 05h, 06h, ___________07h, 08h, 09h, 0Ah, 0Bh, 0Ch, ___________0Dh, 0Eh, 0Fh, 10h, 11h, 12h, ___________13h, 14h
  3. arrsum:_db 00h
  4. main:
  5. ____mvi ____a, 00h
  6. ____mvi ____c, 14h
  7. ____lxi ____h, array
  8. SumLoop:
  9. ____add ____m
  10. ____inx ____h
  11. ____dcr ____c
  12. ____jnz ____SumLoop
  13. ____sta ____arrsum
  14. ____hlt
В следующем примере программы мы выполним сложение всех элементов массива. Результат сложения будет в регистре аккумуляторе.

  1. ; Автор: Довгополов Евгений Сергеевич
  2. array:__db 01h, 02h, 03h, 04h, 05h, 06h, 07h, 08h, 09h, 0Ah, 0Bh, 0Ch, 0Dh, 0Eh, 0Fh, 10h, 11h, 12h, 13h, 14h
  3. arrsum:_db 00h
  4. main:
  5. ____mvi ____a, 00h____; Обнуляем значение результата сложения.
  6. ____mvi ____c, 14h____; Устанавливаем счётчик цикла C равным 20.
  7. ____lxi ____h, array__; Загружаем адрес переменной array в пару регистров HL.
  8. SumLoop:
  9. ____add ____m_________; Выполняем сложение значения в регистре A со значением в ячейке памяти.
  10. ____inx ____h_________; Увеличиваем значение пары регистров HL на 1.
  11. ____dcr ____c_________; Уменьшаем значение в регистра-счётчика C на 1.
  12. ____jnz ____SumLoop___; Выполняем переход на метку SumLoop пока регистр C не будет равен 0.
  13. ____sta ____arrsum____; Сохраняем значение регистра A в памяти (arrsum).
  14. ____hlt_______________; Завершаем программу.
Made on
Tilda