Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2009, 12:45   #1
Girrl666
Новичок
Джуниор
 
Регистрация: 03.09.2009
Сообщений: 2
Восклицание Ассемблер

Ребята помогите, срочно нужно написать программу на ассемблере: Определение тактовой частоты процессора и др.характеристик, компилятор - любой!
Совсем не знаю что делать, могут отчислить...
Girrl666 вне форума Ответить с цитированием
Старый 03.09.2009, 12:56   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Могу только посоветовать такой шаблон:
file://localhost/D:/Help/delphiworld/get_clockrate_of_processor.html
Там на асме основное, используй его.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.09.2009, 18:10   #3
MalCer
Форумчанин
 
Аватар для MalCer
 
Регистрация: 15.07.2008
Сообщений: 615
По умолчанию

Код с ассемблерными вставками:
Код:
double CPUSpeed(void) 
  { 
    DWORD dwTimerHi, dwTimerLo; 
    asm
     { 
        DW 0x310F 
        mov dwTimerLo, EAX 
        mov dwTimerHi, EDX 
      } 
    Sleep (500); 
    asm
     { 
        DW 0x310F 
        sub EAX, dwTimerLo 
        sub EDX, dwTimerHi 
        mov dwTimerLo, EAX 
        mov dwTimerHi, EDX 
     } 
    return dwTimerLo/(1000.0*500); 
  }
или
Код:
function GetCPUSpeed: Double;
const
  DelayTime = 500;
var
  TimerHi, TimerLo: DWORD;
 PriorityClass, Priority: Integer;
begin
  PriorityClass := GetPriorityClass(GetCurrentProcess);
  Priority := GetThreadPriority(GetCurrentThread);
  SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
  SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);
  Sleep(10);
  asm
    dw 310Fh
    mov TimerLo, eax
    mov TimerHi, edx
  end;
  Sleep(DelayTime);
  asm
    dw 310Fh
    sub eax, TimerLo
    sbb edx, TimerHi
    mov TimerLo, eax
    mov TimerHi, edx
  end;
  SetThreadPriority(GetCurrentThread, Priority);
  SetPriorityClass(GetCurrentProcess, PriorityClass);
  Result := TimerLo/(1000.0 * DelayTime);
end;
xor eax, eax
xchg [eax], eax
MalCer вне форума Ответить с цитированием
Старый 03.09.2009, 18:56   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

CPUID
http://www.sandpile.org/ia32/cpuid.htm
netrino вне форума Ответить с цитированием
Старый 06.09.2009, 14:27   #5
Girrl666
Новичок
Джуниор
 
Регистрация: 03.09.2009
Сообщений: 2
Радость

Спасибо, ребята !!!!!!
Girrl666 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ассемблер farxad Помощь студентам 6 11.09.2016 14:19
Ассемблер maziLa Помощь студентам 2 14.07.2009 09:25
Ассемблер maziLa Помощь студентам 3 06.07.2009 10:31
Ассемблер InTest Фриланс 1 12.12.2007 02:05