IPB
ЛогинПароль:

> Внимание! Действует предмодерация

Подраздел FAQ (ЧАВО, ЧАстые ВОпросы) предназначен для размещения готовых рабочих программ, реализаций алгоритмов. Это нечто вроде справочника, он наполнялся в течение 2000х годов. Ваши вопросы, особенно просьбы решить задачу, не пройдут предмодерацию. Те, кто наполнял раздел, уже не заходят на форум, а с теми, кто на форуме сейчас, лучше начинать общение в других разделах. В частности, решение задач — здесь.

> Помогите с Delay()
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 40
Пол: Мужской

Репутация: -  0  +


Как настроить Delay чтобы на всех машинах задержка была одинакова?
А то получатеся под моим Duron850 - усе оки, под Celeron2000 - слишком быстро, под P1-не наю скока - слишком медленно?
Через какие функции мона определить частоту или хотя бы тип процессора?
Или на Pascal'e никак?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 180
Пол: Мужской

Репутация: -  2  +


строчка mov dx,word ptr Wait
означает, что в dx загрузится слово (word, 2 байта) с адреса wait,
соответственно, в cx загрузится слово с адреса wait+2 (mov cx,word ptr Wait+2), т.е. следующие два байта...
функция 86h прерывания 15h видимо требует в качестве параметра именно 32-битное число в регистрах cx:dx... таким образом, если описать параметр wait как word, получится фигня: либо в cx загрузится хрен знает что, либо (если убрать загрузку в cx) его значение останется неопределенным (хотя можно обнулить просто)
PS: и вообще, надо параметр в процедуре объявлять как var, иначе он будет передаваться в регистрах (простое число ведь) и фиг знает, как паскаль подсунет его ассемблеру в виде указателя - ptr Wait
PS2: и вообще, если задержка - 32-битное число, то вряд ли она в миллисекундах, скорее уж в микросекундах smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
godd   Помогите с Delay()   3.10.2004 3:15
GoodWind   была такая тема, воспользуйся поиском   3.10.2004 8:59
Altair   http://forum.pascal.net.ru/index.php?showtopic=187…   3.10.2004 11:47
godd   Oleg_Z а может имеет смысл в procedure Stop(W…   3.10.2004 13:41
SKVOZNJAK   Нет смысла в самопальных ассемблерных процедурах -…   3.10.2004 16:57
Altair   Не может быть. Я все тестирую, прежде чем в FAQ в…   4.10.2004 9:37
godd   Oleg_Z я в ассембе хоть и мало шарю, но mov dx, w…   4.10.2004 15:04
godd   Oleg_Z А если и больше 65535мс - то можно функцию…   4.10.2004 15:11
Altair   Это не то, о чем вы подумали. Да вроде все решил…   4.10.2004 21:33
FreeMan   Если нужна задержка не меньше 55мс можно читать по…   4.10.2004 21:39
godd   Oleg_Z да нет, мы ассм немного изучали, а в mov  …   5.10.2004 2:35
Altair   DW или WORD Эта директива определяет эл-т данных д…   5.10.2004 2:54
P@sh@   строчка mov dx,word ptr Wait означает, что в dx …   7.10.2004 14:36
godd   mov   dx,word ptr Wait если Wait - LongInt (4байта…   7.10.2004 18:00
P@sh@   то есть?   11.10.2004 16:05
godd   вроде понял. сперва 2байта из 4ех грузим в dx (т.е…   12.10.2004 0:21
GLuk   Изменяется, дык как только быть с 00:00 pm. Теори…   22.11.2004 4:27


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 8.05.2024 23:38
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name