ХАНДЫФАР

В следующем примере программы мы выполним копирование элементов массива в другой массив.

  1. ; Автор: Довгополов Евгений Сергеевич
  2. src: db 0Ah, 09h, 08h, 07h, 06h, 05h,
  3. ________04h, 03h, 02h, 01h
  4. dst: db 00h, 00h, 00h, 00h, 00h, 00h,
  5. ________00h, 00h, 00h, 00h
  6. main:
  7. ____lxi ____h, src
  8. ____lxi ____d, dst
  9. ____mvi ____c, 0Ah
  10. CopyLoop:
  11. ____mov ____a, m
  12. ____stax ___d
  13. ____inx ____h
  14. ____inx ____d
  15. ____dcr ____c
  16. ____jnz ____CopyLoop
  17. ____hlt
В следующем примере программы мы выполним копирование элементов массива в другой массив.

  1. ; Автор: Довгополов Евгений Сергеевич
  2. src: db 0Ah, 09h, 08h, 07h, 06h, 05h, 04h, 03h, 02h, 01h
  3. dst: db 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h, 00h
  4. main:
  5. ____lxi ____h, src____; Загружаем адрес переменной src в пару регистров HL.
  6. ____lxi ____d, dst____; Загружаем адрес переменной dst в пару регистров DE.
  7. ____mvi ____c, 0Ah____; Устанавливаем счётчик цикла C равным 10.
  8. CopyLoop:
  9. ____mov ____a, m______; Копируем значение в памяти на которую указывает пара регистров HL в регистр A.
  10. ____stax ___d_________; Сохраняем значение в A по адресу в памяти на которую указывает DE.
  11. ____inx ____h_________; Увеличиваем значение пары регистров HL на 1.
  12. ____inx ____d_________; Увеличиваем значение пары регистров DE на 1.
  13. ____dcr ____c_________; Уменьшаем значение в регистра-счётчика C на 1.
  14. ____jnz ____CopyLoop__; Выполняем переход на метку CopyLoop пока регистр C не будет равен 0.
  15. ____hlt_______________; Завершаем программу.
Made on
Tilda