Время

Discussion in 'WASM.WIN32' started by AntiB, Aug 30, 2007.

  1. AntiB

    AntiB New Member

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

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

    Blog Posts:
    0
    Joined:
    Jan 6, 2003
    Messages:
    3,143
    Location:
    Ukraine
    GetLocalTime (описание в MSDN)
     
  3. Freeman

    Freeman New Member

    Blog Posts:
    0
    Joined:
    Feb 10, 2005
    Messages:
    1,385
    Location:
    Ukraine
    1) программируя пад винду забудь про дос и про то как там было легко все делать прерываниями
    2) купи/скачай МСДН
     
  4. Stub

    Stub New Member

    Blog Posts:
    0
    Joined:
    May 11, 2004
    Messages:
    311
    Location:
    Siberia
    имхо для начала и PSDK за глаза будет (а именно его хелпа)
     
  5. JAPH

    JAPH New Member

    Blog Posts:
    0
    Joined:
    Jun 23, 2007
    Messages:
    124
    GetSystemTimeAsFileTime. Тоже читает ячейку памяти.
     
  6. int2eh

    int2eh Alexander Leevy

    Blog Posts:
    0
    Joined:
    Aug 19, 2007
    Messages:
    106
    Location:
    Москва
    А чтобы увидеть человеческое время: GetDateFormat() и GetTimeFormat()
     
  7. Ultrin Faern

    Ultrin Faern New Member

    Blog Posts:
    0
    Joined:
    Jun 25, 2006
    Messages:
    170
    Еще есть GetTickCount - очень похоже на то, что было в ДОСе :)
     
  8. JAPH

    JAPH New Member

    Blog Posts:
    0
    Joined:
    Jun 23, 2007
    Messages:
    124
    Ultrin Faern
    RDTSC - оно и в Африке RDTSC :)
     
  9. iamlamer

    iamlamer New Member

    Blog Posts:
    0
    Joined:
    Jun 20, 2005
    Messages:
    273
    Location:
    Russia
    > mov eax, [es:0x46c]

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