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

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

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

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

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

textual
Листинг программы
xor ah,ah
int 1Ah
 
mov bx,dx
add bx,300 ;сам подбирай число для задержки в 1 минуту 30 секунд
 
time:
xor ah,ah
int 1Ah
 
cmp dx,bx
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