Как сделать задержку в несколько секунд?

Низкоуровневое программирование портов, микроконтроллеров и т.д.

Модератор: Andy

Vano
Сообщения: 41
Зарегистрирован: 16 авг 2004, 22:21
Откуда: Днепропетровск
Контактная информация:

Может быть вот сейчас сижу и разбираюсь.
Andy
Сообщения: 238
Зарегистрирован: 17 фев 2004, 08:15
Откуда: Минск

Попробовал запустить прогу под DOSом всё равно никакой задержки не получилось
Не может быть. У меня даже работает в ДОСе через VMWare. Может задержка маленькая и ты ее не замечаешь? Положи в cx = 0ffffh :)
*provided AS IS
Vano
Сообщения: 41
Зарегистрирован: 16 авг 2004, 22:21
Откуда: Днепропетровск
Контактная информация:

С помощью такого макроса я пытаюсь сделать задержку в 5 сек. Запускаю из-под ДОСа, флаг cf=0, но задержки в 5 сек. все равно нету :( .

Код: Выделить всё

delay macro time
  push ax
  push cx
  push dx
  xor ax,ax
  mov   ah,86h 
  xor   cx,cx 
  mov   dx,time 
  int   15h 
  pop dx
  pop cx
  pop ax 
endm
Andy
Сообщения: 238
Зарегистрирован: 17 фев 2004, 08:15
Откуда: Минск

Vano, я же написал в самом начале:
cx:dx = длительность задержки в микросекундах (cx - старшее слово)
А ты CX обнуляешь. Получается задержка не большая чем 65535 микросекунд = 0.065 секунды. Ты ее не заметил. 5 секунд это кажется примерно 76 в cx.

ЗЫ. Кстати, а чем ax обнуляешь?
*provided AS IS
Vano
Сообщения: 41
Зарегистрирован: 16 авг 2004, 22:21
Откуда: Днепропетровск
Контактная информация:

ax обнулил на всякий случай. Думал может al тоже на что-то влияет и по-этому не работает. Попробую снова. :)
Vano
Сообщения: 41
Зарегистрирован: 16 авг 2004, 22:21
Откуда: Днепропетровск
Контактная информация:

Да получилось! СПАСИБО!!! :)
Ответить