![]() |
|
![]() ![]() ![]() |
|
pvn |
|
|||
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 26.10.2006 Репутация: нет Всего: нет |
Как можно в Ассемблере определить тактовую частоту процессора? Может кто знает с помощью какой функции и какого прерывания?
|
|||
|
||||
10110111 |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 28.8.2006 Где: Санкт-Петербург Репутация: 1 Всего: 1 |
Ну, вообще-то, по-моему, с помощью прерываний это затруднительно, но, если проц Pentium Pro (если не ошибаюсь, он) или выше, то можно с помощью rdtsc и системного таймера.
|
|||
|
||||
chyapay |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 6.2.2006 Где: UA, Lviv Репутация: нет Всего: нет |
а в защищенном режиме?? возможно ли? я имею в виду если в собственном бут-страп коде или в кернеле сделать подобную функцию и каждый раз после загрузки системы ее результат куда-то ложить чтобы потом ОС могла выдавать его прогам под их спрос. кроме того, согласитесь, и самой ОС неплохо бы знать тактовую частоту проца.
|
|||
|
||||
Ant |
|
|||
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 3.9.2006 Репутация: нет Всего: нет |
chyapay, а как же Qool'n'Que?
|
|||
|
||||
Mikl__ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 18.5.2007 Репутация: нет Всего: 1 |
||||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: нет Всего: 207 |
если есть поддержка ACPI, то можно узнать готовое значение частоты (поле CoreFreq объекта _PSS)
-------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Mikl__ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 18.5.2007 Репутация: нет Всего: 1 |
MAKCim,
![]() |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: нет Всего: 207 |
Mikl__,
Это сложно
код находит адрес AML кода и возвращает его в EAX (если ACPI не поддерживается, возвращает 0) AML код кодирует по определенным правилам объекты и методы, среди объектов надо найти _PSS и прочитать значение CoreFreq для интерпретации AML кода нужен AML-интерпретатор ![]() Это сообщение отредактировал(а) MAKCim - 22.5.2007, 12:47 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
Mikl__ |
|
|||
Новичок Профиль Группа: Участник Сообщений: 30 Регистрация: 18.5.2007 Репутация: нет Всего: 1 |
MAKCim
большое спасибо, а как получить частоту CPU из BIOS'а в Protect Mode? |
|||
|
||||
MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: нет Всего: 207 |
если знаешь, где она лежит в BIOS, то просто читаешь из этой области памяти (если включен страничный режим, дополнительно нужно отобразить 0xE0000 - 0xFFFFF на виртупльное адресное пространство) -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Asm для Windows/DOS" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для Windows/Dos | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |