Задержка на Intel8524 - Assembler

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

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

Привет, прошу помочь и объяснить как сделать задержку в 1 минуту 30 секунд с использованием микросхемы реального времени (Intel8524, насколько я понял). Здесь нашел вариант:
Листинг программы
  1. .model small
  2. .code
  3. begin:
  4. mov ax,40h
  5. mov es,ax
  6. m0:
  7. mov al,byte ptr es:[40h]
  8. m1:
  9. cmp al,byte ptr es:[40h]
  10. je m1
  11. inc bx
  12. cmp bx,1800 ;90 сек (20 = 1сек)
  13. jne m0
  14. mov ah,4ch
  15. int 21h
  16. end begin

Решение задачи: «Задержка на Intel8524»

textual
Листинг программы
  1. xor ah,ah
  2. int 1Ah
  3.  
  4. mov bx,dx
  5. add bx,300 ;сам подбирай число для задержки в 1 минуту 30 секунд
  6.  
  7. time:
  8. xor ah,ah
  9. int 1Ah
  10.  
  11. cmp dx,bx
  12. jb time

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

  1. xor ah,ah — инициализация регистра AH для использования в качестве временной переменной
  2. int 1Ah — генерирует прерывание, которое вызывает задержку, и возвращает в программу значение регистра AH
  3. mov bx,dx — копирует значение регистра DX в регистр BX
  4. add bx,300 — добавляет 300 к значению регистра BX, что приводит к задержке в 1 минуту 30 секунд
  5. time: — метка для цикла
  6. xor ah,ah — инициализация регистра AH для использования в качестве временной переменной
  7. int 1Ah — генерирует прерывание, которое вызывает задержку, и возвращает в программу значение регистра AH
  8. cmp dx,bx — сравнивает значение регистра DX с значением регистра BX
  9. jb time — если значение регистра DX меньше значения регистра BX, то переходим к метке time, что вызывает повторный запуск цикла

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

9   голосов , оценка 4.444 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут