Advanced member
Статус: Не в сети Регистрация: 30.08.2003 Откуда: Санкт-Петербург
eshtrey а интересует графика под что? ДОС, вынь, линух? В первом случае - банальная прямая запись в видеопамять или использование сервисов видеопрерывания...
_________________ {:€ дед в законе :-) нородный окодемег почетный пользователь OpenSuSE 11.3 Ремонт и модернизация ноутбуков IBM (Lenovo) ThinkPad
Мне нужна прога, которая будет выводить движущийся обЪект под DOS. Например по экрану будет ползти червяк. Т.е. в один момент времени прямой, а в другой изогнут, и так пока не нажмёшь Esc. Вот такой вот курсач! Добавлено спустя 1 минуту, 4 секунды Root Мне нужна прога, которая будет выводить движущийся обЪект под DOS. Например по экрану будет ползти червяк. Т.е. в один момент времени прямой, а в другой изогнут, и так пока не нажмёшь Esc. Вот такой вот курсач!
;НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН ; INCLUDES ;НННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН
include \masm32\include\windows.inc include \masm32\include\user32.inc include \masm32\include\kernel32.inc includelib \masm32\lib\kernel32.lib includelib \masm32\lib\user32.lib
есть такой код. может кто объяснить, где именно считается частота cpu. Тут как я понял используется куча инструкций для работы с FPU. rdtsc - считывает такты. Есть еще умножение и деление. Мне надо объяснить преподавательнице, как именно считается частота. Т.е. какими инструкциями, сколько тактов они занимают и т.д.
_________________ В этом мире меня подводят доброта и порядочность...
?Am(d)ber? Промотрел твой отрывок. Не очень он понятный да еще и без комментов. Если тебе нужен подсчет частоты могу предложить вот это:
Код:
rdtsc ;RDTSC mov TimerLo,EAX ;Сохранили значение счетчика таков в переменные mov TimerHi,EDX push 500d ;Подождали 500 милисекунд call Sleep rdtsc ;получили новое значение счетчика тактов в регистры sub EAX,TimerLo ;вычли из младшей части нового младшую часть старого jnc cont ;если был перенос sub EDX,1 ;вычли из старшей части доп. единицу cont: sub EDX,TimerHi ;вычли старшие части mov ECX,500000d ;поделили разность между значениями счетчика тактов на 500(задержка)*1000(нас же мегагерцы интрересуют!) div ECX ;после выполнения этой команды - в EAX частота.
В твоем случае намутили еще с сопроцессором зачем-то... И при этом отбросили старшую часть счетчика тактов... Довольно дурацкий способ ИМХО. Токо если нужно продемонстрировать умение работать с сопроцессором....
_________________ I L.A.W. you, baby!
For a GNU dawn! For freedom!
Member
Статус: Не в сети Регистрация: 12.07.2005 Откуда: Млечный путь
L.A.W. Большое спасибо, я так понял влияние скорости выполнения самих инструкций здесь не так существенно? И еще, как этот код будет работать на разных семействах процессоров? Для меня важно, чтобы был одинаковый резалт на процессорах семейства 486-P5.
_________________ В этом мире меня подводят доброта и порядочность...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения