Как сделать задержку в несколько секунд?
Модератор: Andy
Формирование задержки - ah = 86h, int 15h
Таким образом задержка например на 10 милисекунд:
Код: Выделить всё
Вход:
ah = 86h
cx:dx = длительность задержки в микросекундах (cx - старшее слово)
Выход:
al = маска в регистре управления прерываниями (не буду подробно)
Флаг CF = 0 если задержка выполнена и CF = 1 если таймер занят
Код: Выделить всё
mov ah,86h
xor cx,cx
mov dx,10000
int 15h
*provided AS IS
Потому что из под винды наверное запускаешь. А винда видимо еще и ХР какая нибудь... Запусти из ДОСаЯ сделал так, но у меня всё время CF=1. Чё так не пойму??
*provided AS IS
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Тогда делай виндовый экзэшник и используй для зажержки таймер. Ключевые слова для поиска в MSDN: SetTimer и KillTimer.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Понимаешь в чём проблема. Если ты пишешь на 16-ти разрядном TASM, то запускай эту программу на 16-ти разрядных операционных системах аля DOS, Win 3/3.11 :) (на самом деле всё будет правильно работать и на Windows 95/98). Если же ты используешь современную операционную систему (старше либо равно Windows ME), то будь добр - обзаведись пристойным 32-битным компилятором (MASM, WASM и т.д.). Не бывать кондиционеру в запорожце :)
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Либо DOS не натоящий (например эмуляция на Windows XP/2000), либо напартачил что-то.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.