ХАНДЫФАР

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

  1. ; Автор: Довгополов Евгений Сергеевич
  2. add_res: db 00h
  3. sub_res: db 00h
  4. main:
  5. ____mvi ____b, 05h
  6. ____mvi ____c, 03h
  7. ____mvi ____d, 02h
  8. ____call ___add8b_v
  9. ____sta ____add_res
  10. ____mvi ____b, 10h
  11. ____mvi ____c, 04h
  12. ____mvi ____d, 03h
  13. ____call ___sub8b_v
  14. ____sta ____sub_res
  15. ____hlt
  16. add8b_v:
  17. ____mov ____a, b
  18. ____add ____c
  19. ____add ____d
  20. ____ret
  21. sub8b_v:
  22. ____mov ____a, b
  23. ____sub ____c
  24. ____sub ____d
  25. ____ret
В следующем примере программы мы напишем две функции которые будут выполнять сложение и вычитание. Результаты будут сохранены в переменных.

  1. ; Автор: Довгополов Евгений Сергеевич
  2. add_res: db 00h
  3. sub_res: db 00h
  4. main:
  5. ____mvi ____b, 05h___; Копируем шестнадцатеричное непосредственное значение 05h в регистр B.
  6. ____mvi ____c, 03h___; Копируем шестнадцатеричное непосредственное значение 03h в регистр C.
  7. ____mvi ____d, 02h___; Копируем шестнадцатеричное непосредственное значение 02h в регистр D.
  8. ____call ___add8b_v__; Вызываем процедуру add8b_v. Результат в A.
  9. ____sta ____add_res__; Сохраняем значение аккумулятора в переменной add_res.
  10. ____mvi ____b, 10h___; Копируем шестнадцатеричное непосредственное значение 10h в регистр B.
  11. ____mvi ____c, 04h___; Копируем шестнадцатеричное непосредственное значение 04h в регистр C.
  12. ____mvi ____d, 03h___; Копируем шестнадцатеричное непосредственное значение 03h в регистр D.
  13. ____call ___sub8b_v__; Вызываем процедуру sub8b_v. Результат в A.
  14. ____sta ____sub_res__; Сохраняем значение аккумулятора в переменной sub_res.
  15. ____hlt______________; Завершаем программу.
  16. add8b_v:_____________; Процедура add8b_v.
  17. ____mov ____a, b_____; Копируем значение регистра B в регистр A.
  18. ____add ____c________; К регистру A прибавляем значение регистра C.
  19. ____add ____d________; К регистру A прибавляем значение регистра D.
  20. ____ret______________; Возврат из процедуры обратно к месту вызова.
  21. sub8b_v:_____________; Процедура sub8b_v.
  22. ____mov ____a, b_____; Копируем значение регистра B в регистр A.
  23. ____sub ____c________; Из регистра A вычисляем значение регистра C.
  24. ____sub ____d________; Из регистра A вычисляем значение регистра D.
  25. ____ret______________; Возврат из процедуры обратно к месту вызова.
Made on
Tilda