Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Использование rdtsc в DOS??? |
Автор: kostyantmb 19.9.2005, 16:21 |
Можно ли в Borland C++ 3.11 for DOS использовать rdtsc для последующего определения с помощью неё тактовой частоты процессора??? Если можно, то как? |
Автор: _hunter 19.9.2005, 16:55 |
можно. точно так же как и под окнами... xor eax, eax CPUID RDTSC mov [clock], EAX ... xor eax, eax CPUID RDTSC SUB eax, [clock] |
Автор: SergeCpp 19.9.2005, 17:11 |
В окне Win9x — вылетать будет... Я так пробовал. |
Автор: _hunter 19.9.2005, 18:13 |
видать не так пробовал -- ничего не вылетало... |
Автор: SergeCpp 20.9.2005, 06:34 |
Имеется в виду программа DOS (Multi-Edit) Если туда ставишь RDTSC, то в окне Win9x - недопустимая команда Win9x — не NT-based system Конкретно — Millennium Что там не так можно сделать — два байта команда (и всё) |
Автор: _hunter 20.9.2005, 10:47 |
что за "программа DOS (Multi-Edit)"? насчет линолеума -- не знаю, но в универе под 98-й без проблем шло... + под 2000 (и ХР), который гораздо строже относятся к подобным коммандам тоже все без проблем работает... |
Автор: SergeCpp 20.9.2005, 12:15 |
Multi-Edit for DOS Version 7.00 Professional released 1993 |
Автор: _hunter 20.9.2005, 13:02 |
и о чем это говорит? -- Multi-Edit ( for DOS )-- жуткое крывулище... |
Автор: Crait 20.9.2005, 14:47 |
MultiEdit 7 - штука кульная, не нада ляля ![]() Вот тока куда в него и как "поставили" инструкцию RDTSC ?? ![]() |
Автор: SergeCpp 20.9.2005, 15:09 | ||
Добавлено @ 15:11 WRMSR я комментировал, знаю, что за штука... |
Автор: _hunter 20.9.2005, 15:12 |
э... и при чем тут этот код? |
Автор: SergeCpp 20.9.2005, 15:15 |
Вот тока куда в него и как "поставили" инструкцию RDTSC ?? это ответ на вопрос выше |
Автор: _hunter 20.9.2005, 15:36 |
ты, наверное, не заметил, но там кроме этой инструкции есть еще несколько. среди них -- вызов прерывания. если именно этот код ты и вставлял -- ничего удивительного в том, что окна его не пропускали. |
Автор: SergeCpp 20.9.2005, 16:50 |
Без этой инструкции (если NOP NOP) — всё работало! Это же мой код — с "нуля". Добавлено @ 16:51 Да и ругались именно на RDTSC (PC там был — на ней) |
Автор: kostyantmb 21.9.2005, 06:25 |
Дак как это всё-таки на С реализовать??? Там все не так как под окнами, пробовал! |
Автор: SergeCpp 21.9.2005, 06:43 |
функция-вставка на асме типа #pragma warning( disable : 4035 ) // no return value __forceinline DWORD rdtsc() { __asm rdtsc // edx:eax } #pragma warning( default : 4035 ) DWORD мне хватает... Если надо hi-dword, думай сам... это, конечно, VC6, но делай аналогично... |