реклама на сайте
подробности

 
 
> Интересная функция задержки, Вопрос по ассемблеру
Reboot_s
сообщение Aug 25 2006, 12:26
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 26
Регистрация: 9-05-05
Пользователь №: 4 855



Есть вот такая интересная функция задержки времени.
Сначала задается:
ldi AL, 125
Потом вызывается сама функция:
dly:
mov _Stm1, AL
tst _Stm1
brne PC-1
ret
При кварце в 10 МГц задержка выходит примерно в 500 мс.
Вопрос - как это работает, а именно, что постепенно обнуляет регистр _Stm1?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
vet
сообщение Aug 28 2006, 15:57
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 550
Регистрация: 16-06-04
Из: Казань
Пользователь №: 32



prottoss
к чему ирония? разумеется, измерение отрезка времени таймером точнее, чем с помощью цикла, неизвестно на сколько времени продлённого разнообразными возникающими по ходу работы прерываниями.


--------------------
Главная линия этого опуса ясна мне насквозь!
Go to the top of the page
 
+Quote Post
prottoss
сообщение Aug 28 2006, 18:58
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(vet @ Aug 28 2006, 23:57) *
prottoss
к чему ирония? разумеется, измерение отрезка времени таймером точнее, чем с помощью цикла, неизвестно на сколько времени продлённого разнообразными возникающими по ходу работы прерываниями.
Так и я о том же, а уважаемый defunct пытается доказать обратное

Цитата(singlskv @ Aug 29 2006, 02:39) *
Интересно, а если у нас вся работа происходит в прерываниях, то что мы будем
делать, в то время пока не произошло интересуещее нас событие (ИМХО, ковырять в носу в
каком-нибудь пустом цикле smile.gif ).
Кто то ковыряет в носу, а кто то спокойно спит)))

Сообщение отредактировал prottoss - Aug 28 2006, 19:00


--------------------
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 29 2006, 13:29
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(prottoss @ Aug 28 2006, 21:58) *
Цитата(vet @ Aug 28 2006, 23:57) *
prottoss
к чему ирония? разумеется, измерение отрезка времени таймером точнее, чем с помощью цикла, неизвестно на сколько времени продлённого разнообразными возникающими по ходу работы прерываниями.
Так и я о том же, а уважаемый defunct пытается доказать обратное

Цитату в студию.

protoss
Может быть прежде чем слепо спорить, что-то домысливать и т.п. лучше просто подумать над тем что было сказано?..

А код такой задержи на мой взгляд имеет корни скорее всего из realmode x86 платформы. Системный таймер в realmode x86 располагается по фиксированному адресу и инкрементируется 18.2 раз в секунду обработчиком прерывания IRQ0, т.о. самый простой способ организации относительно точной задержки, независимой от частоты процессора для realmode x86 - это просто постоянно вычитывать значение системного таймера и сравнивать с требуемым значением:

типичная организация задержки в DOS программах:
Код
   push ds
   xor  ax, ax
   mov  ds, ax
   mov  eax, [413h]; <- могу ошибиться с адресом
   add  eax, 182; +10 секунд
_do_wait:
   cmp  eax, [413h]
   ja _do_wait
   pop  ds
Go to the top of the page
 
+Quote Post
prottoss
сообщение Aug 29 2006, 14:01
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(defunct @ Aug 29 2006, 21:29) *
типичная организация задержки в DOS программах:
Код
   push ds
   xor  ax, ax
   mov  ds, ax
   mov  eax, [413h]; <- могу ошибиться с адресом
   add  eax, 182; +10 секунд
_do_wait:
   cmp  eax, [413h]
   ja _do_wait
   pop  ds


Надоело спорить о бессмысленном, но Вы хоть добавляйте, что типично для Вас. Хотите поговорить о DOS? Пожалуйста. Вы слышали чего нибудь о функции BIOS INT15? Это типично для DOS... Но долго...Представляю лучшие ДОСовские игры, с задержками, организованными по Вашему коду)))

PS: счетчик располагается по адресу 0000:046Ch


--------------------
Go to the top of the page
 
+Quote Post
defunct
сообщение Aug 29 2006, 14:48
Сообщение #6


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(prottoss @ Aug 29 2006, 17:01) *
Надоело спорить о бессмысленном, но Вы хоть добавляйте, что типично для Вас.

Боже упаси, кто с вами спорит-то? smile.gif
Вы эта.. хоть читайте сообщения.. или "чукча только писатель" © ? smile.gif

Цитата
Хотите поговорить о DOS? Пожалуйста. Вы слышали чего нибудь о функции BIOS INT15? Это типично для DOS... Но долго...

Сервисные функции DOS начинаются с INT 20H, поэтому INT 15 это "типично для Вас" © protoss, а не для DOS. smile.gif

Цитата
Представляю лучшие ДОСовские игры, с задержками, организованными по Вашему коду)))

Всякий овощ полезен. ©
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Reboot_s   Интересная функция задержки   Aug 25 2006, 12:26
- - vet   Очевидно, прерывание; предположительно, по таймеру...   Aug 25 2006, 12:37
|- - Reboot_s   Цитата(vet @ Aug 25 2006, 16:37) Очевидно...   Aug 25 2006, 13:13
- - prottoss   Я бы сказал, что функция не интересная, а наоборот...   Aug 25 2006, 13:09
|- - SasaVitebsk   Цитата(prottoss @ Aug 25 2006, 16:09) Я б...   Aug 26 2006, 19:49
||- - prottoss   Цитата(SasaVitebsk @ Aug 27 2006, 03:49) ...   Aug 26 2006, 21:25
||- - SasaVitebsk   Цитата(prottoss @ Aug 27 2006, 00:25) Цит...   Aug 27 2006, 22:41
|||- - CDT   Цитата(prottoss @ Aug 25 2006, 16:09) Я б...   Aug 28 2006, 05:17
||- - defunct   Цитата(prottoss @ Aug 27 2006, 00:25) Цит...   Aug 28 2006, 12:01
||- - prottoss   Цитата(defunct @ Aug 28 2006, 20:01) ну я...   Aug 28 2006, 15:45
|- - singlskv   Цитата(prottoss @ Aug 25 2006, 17:09) Я б...   Aug 28 2006, 18:39
|- - singlskv   Цитата(prottoss @ Aug 28 2006, 22:58) Кто...   Aug 28 2006, 19:14
||- - prottoss   Цитата(singlskv @ Aug 29 2006, 03:14) Угу...   Aug 28 2006, 19:56
||- - SasaVitebsk   Цитата(prottoss @ Aug 28 2006, 22:56) Пот...   Aug 28 2006, 20:07
|||- - prottoss   Цитата(SasaVitebsk @ Aug 29 2006, 04:07) ...   Aug 28 2006, 21:21
||- - singlskv   Цитата(prottoss @ Aug 28 2006, 23:56) Пот...   Aug 28 2006, 20:49
||- - SasaVitebsk   Цитата(singlskv @ Aug 28 2006, 23:49) Пот...   Aug 28 2006, 21:09
||- - prottoss   Цитата(singlskv @ Aug 29 2006, 04:49) Пот...   Aug 28 2006, 21:12
||- - singlskv   Цитата(prottoss @ Aug 29 2006, 01:12) Цит...   Aug 28 2006, 21:39
||- - prottoss   Цитата(singlskv @ Aug 29 2006, 05:39) При...   Aug 28 2006, 21:47
||- - singlskv   Цитата(prottoss @ Aug 29 2006, 01:47) Цит...   Aug 28 2006, 22:03
||- - prottoss   Цитата(singlskv @ Aug 29 2006, 06:03) Мож...   Aug 28 2006, 22:16
||- - singlskv   Цитата(prottoss @ Aug 29 2006, 02:16) Цит...   Aug 28 2006, 22:29
||- - prottoss   Цитата(singlskv @ Aug 29 2006, 06:29) Око...   Aug 28 2006, 22:44
||- - singlskv   Цитата(prottoss @ Aug 29 2006, 02:44) Цит...   Aug 28 2006, 23:10
||- - SasaVitebsk   Цитата(prottoss @ Aug 29 2006, 01:44) Цит...   Aug 30 2006, 17:42
||- - prottoss   Цитата(SasaVitebsk @ Aug 31 2006, 01:42) ...   Aug 30 2006, 18:12
||- - defunct   Цитата(prottoss @ Aug 30 2006, 21:12) Цит...   Aug 31 2006, 13:17
|- - prottoss   Цитата(defunct @ Aug 29 2006, 22:48) Вы э...   Aug 29 2006, 15:43
|- - defunct   Цитата(prottoss @ Aug 29 2006, 18:43) Цит...   Aug 29 2006, 18:25
|- - prottoss   Цитата(defunct @ Aug 30 2006, 02:25) PS: ...   Aug 29 2006, 18:39
|- - defunct   Цитата(prottoss @ Aug 29 2006, 21:39) Цит...   Aug 29 2006, 20:50
- - prottoss   Я предложу, но объясните мне, непонятливому, зачем...   Aug 28 2006, 20:42
|- - SasaVitebsk   Цитата(prottoss @ Aug 28 2006, 23:42) Я п...   Aug 28 2006, 21:18
- - vet   prottoss Ваш вариант хуже в смысле точности, и нам...   Aug 29 2006, 05:51
|- - prottoss   Цитата(vet @ Aug 29 2006, 13:51) prottoss...   Aug 29 2006, 06:09
- - vet   Опять не понимаете. Таймер тикает независимо от пр...   Aug 29 2006, 07:09
- - GetSmart   prottoss Если вы такой умный насколько и нагловаты...   Aug 29 2006, 16:16
|- - prottoss   Цитата(GetSmart @ Aug 30 2006, 00:16) pro...   Aug 29 2006, 16:47
- - GetSmart   Ну то есть задание вы провалили. Приходите через г...   Aug 29 2006, 16:58
- - SasaVitebsk   Специально использую класический смайл так как он ...   Aug 30 2006, 20:20
- - prottoss   2 SasaVitebsk: объяснения об улыбках, ухмылках, и ...   Aug 31 2006, 14:57
- - defunct   LMD   Aug 31 2006, 23:10
- - SpiritDance   А дык чего вы хотите от Пиннокио? Ж)))   Sep 1 2006, 05:31


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 12:00
Рейтинг@Mail.ru


Страница сгенерированна за 0.01516 секунд с 7
ELECTRONIX ©2004-2016