![]() |
![]() |
godd |
![]()
Сообщение
#1
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 40 Пол: Мужской Репутация: ![]() ![]() ![]() |
Как настроить Delay чтобы на всех машинах задержка была одинакова?
А то получатеся под моим Duron850 - усе оки, под Celeron2000 - слишком быстро, под P1-не наю скока - слишком медленно? Через какие функции мона определить частоту или хотя бы тип процессора? Или на Pascal'e никак? |
![]() ![]() |
P@sh@ |
![]()
Сообщение
#2
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: ![]() ![]() ![]() |
строчка 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-битное число, то вряд ли она в миллисекундах, скорее уж в микросекундах ![]() |
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 2:10 |