Задержка на 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
Объяснение кода листинга программы
xor ah,ah
— инициализация регистра AH для использования в качестве временной переменнойint 1Ah
— генерирует прерывание, которое вызывает задержку, и возвращает в программу значение регистра AHmov bx,dx
— копирует значение регистра DX в регистр BXadd bx,300
— добавляет 300 к значению регистра BX, что приводит к задержке в 1 минуту 30 секундtime:
— метка для циклаxor ah,ah
— инициализация регистра AH для использования в качестве временной переменнойint 1Ah
— генерирует прерывание, которое вызывает задержку, и возвращает в программу значение регистра AHcmp dx,bx
— сравнивает значение регистра DX с значением регистра BXjb time
— если значение регистра DX меньше значения регистра BX, то переходим к меткеtime
, что вызывает повторный запуск цикла
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д