· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› fr-16: Мистика?

Посл.отвђт Сообщенiе


Дата: Янв 22, 2004 23:55:56

Это текст проги fr-16.com. Рисует круги.

mov al,013
int 10h
les bp,[bx]
label1:
stosb
adc ax,di
adc ax,fs:[046C]
jmps label1

Вот такой с ней прикол. При старте *.com все сегментные регистры равны. НО! Рисунок зависит от сегмента в предпоследней строке! Почему? Они же равны? Неужели скорость операции зависит от сегмента?


Дата: Янв 23, 2004 04:29:48

_DEN_
Рисунок зависит от сегмента ... Почему?
Не от сегмента, а от слова находящегося по адресу 0000:046C.
По этому адресу находится младшее слово счетчика 55-ти миллисекундных интервалов прошедших с полуночи (по времени компьютера, разумеется).


Дата: Янв 23, 2004 05:00:11

Так вот возьми, поменяй fs на ds, потом на cs. Во всех случаях рисунок будет разный.

Самое интересное - Если не указывать сермент (по умолчанию пойдет ds) и явно указать ds, рисунок тоже будет разный!!!


Дата: Янв 23, 2004 05:37:10

_DEN_
возьми, поменяй fs на ds, потом на cs
Где лежит программа?


Дата: Янв 23, 2004 09:37:50

Если это то, о чем я подумал, то на [url=]http://www.farb-rausch.com[/url]http://www.farb-rausch.com


Дата: Янв 23, 2004 09:38:06

Если это то, о чем я подумал, то на http://www.farb-rausch.com


Дата: Янв 24, 2004 04:46:07

Ну вы что, господа, совсем обленились? То что я запостил это и есть ВСЯ программа. Потому она и называется fr-16, то она 16 байт.


Дата: Янв 26, 2004 04:23:51

_DEN_
Обленились говоришь. Ну-ну.

Как ты определял разность рисунка - менял сегментный регистр и запускал заново, еще поди и под win'дой?
Тебе не приходит на ум, что при каждом запуске по адресу cs(ds,ss,es,...):046C может находится разный байт?

Как ты определял разность рисунка - на глаз (ты успеваешь зафиксировать полностью заполненную страницу видеопамяти перед новым заполнением и помнишь ее до следующего запуска)?
Тебе не пришло на ум написать _одну_ программу с _несколькими_ циклами, использующими разные сегментные регистры, которые будут писать не в видеопамять и не бесконечно, а заполнят один сегмент (точнее 64'000 как размер видеостраницы в режиме 13h) и после этого сравнить результаты заполнения.


Дата: Янв 26, 2004 05:13:51

"я запускаю программу неясного содержания, и каждый раз она вылетает с новой ошибкой. в чем дело?" - и смешно, и грустно..


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.050