Время

Тема в разделе "WASM.WIN32", создана пользователем AntiB, 30 авг 2007.

  1. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    Доброе время суток !
    Как из под windows-а узнать время? под Досом ето делаеться так:
    Код (Text):
    1. xor ax, ax
    2. mov es, ax
    3. mov eax, [es:0x46c]
    пробывал такое под виндой - невыходит, программирою на масм32 Зарание благодаер за любую инфу и извеняюсь за тупой вопрос ;)
     
  2. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Регистрация:
    6 янв 2003
    Сообщения:
    3.143
    Адрес:
    Ukraine
    GetLocalTime (описание в MSDN)
     
  3. Freeman

    Freeman New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2005
    Сообщения:
    1.385
    Адрес:
    Ukraine
    1) программируя пад винду забудь про дос и про то как там было легко все делать прерываниями
    2) купи/скачай МСДН
     
  4. Stub

    Stub New Member

    Публикаций:
    0
    Регистрация:
    11 май 2004
    Сообщения:
    311
    Адрес:
    Siberia
    имхо для начала и PSDK за глаза будет (а именно его хелпа)
     
  5. JAPH

    JAPH New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2007
    Сообщения:
    124
    GetSystemTimeAsFileTime. Тоже читает ячейку памяти.
     
  6. int2eh

    int2eh Alexander Leevy

    Публикаций:
    0
    Регистрация:
    19 авг 2007
    Сообщения:
    106
    Адрес:
    Москва
    А чтобы увидеть человеческое время: GetDateFormat() и GetTimeFormat()
     
  7. Ultrin Faern

    Ultrin Faern New Member

    Публикаций:
    0
    Регистрация:
    25 июн 2006
    Сообщения:
    170
    Еще есть GetTickCount - очень похоже на то, что было в ДОСе :)
     
  8. JAPH

    JAPH New Member

    Публикаций:
    0
    Регистрация:
    23 июн 2007
    Сообщения:
    124
    Ultrin Faern
    RDTSC - оно и в Африке RDTSC :)
     
  9. iamlamer

    iamlamer New Member

    Публикаций:
    0
    Регистрация:
    20 июн 2005
    Сообщения:
    273
    Адрес:
    Russia
    > mov eax, [es:0x46c]

    Но это совсем не время! Это счетчик количества прерываний по вектору Irq0 от 0-го канала системного таймера, по умолчанию эти прерывания происходят один раз за 65535 тиков кварца, т.е. 18.2 раз в секунду. В Винде однозначный аналог трудно подобрать... ну, например, QueryPerformanceCounter() считает тики какого-то таймера, идущие с частотой QueryPerformanceFrequency(). Берешь тики, делишь на частоту, получаешь время с точностью до тика.