mov ah, 2ah int 21h жду CX = year (1980-2099) DH = month DL = day ---DOS 1.10+--- AL = day of week (00h=Sunday) делаю это в exeшнике, окомилированном под windows. sybsystem = windows , а не console... так вот вопрос, можно ли под windows както также быстро и легко получить дату? ecx = year edx = month ebx = day ну или чтто такое? GetSystemTime() не катит... проще есть чтото?
dat db "date"; invoke system, dat; так чтоли?.. по моему не то. не катит. у нас не консоль... мне бы команду на асме , прерывание какое бы, чтобы дату разсовало по регистрам как в досе... только ехе-шник этот чтобы под виндой работал а не в дос. см. subsybtem..
Ну так это ж венда, а не ДОС. Вендовые функции обмениваются с программой параметрами в манере, сходной с языком Ц. Прерывания в винде обычно недоступны для простых смертных программ
>> "Прерывания в винде обычно недоступны для простых смертных программ " интересует НЕОБЫЧНОЕ поведение.
ну какие прерывания все еще работают в Windows?.. например инициирование вызовов функций ядра... что-нить хотя бы вроде jmp far ptr FFFF:0000 чтоли... каким нить этаким способом получить current date
blin... raskladku zaklinilo... nu v OllyDbg predstavte sebe disasm calc.exe , vot tam menyam jmp xxx na jmp <our-function> i v <our-function> mov ah, 2ah int 21h nu ili kak to tak, 4tobi legko polu4it current year , month, day srazu raspihannie po registram.
Придельно быстро из KUSER_SHARED_DATA, но там в сотнях наносекунд от 1601 года. kernel32!GetLocalTime отсюда и берёт время, вызывая далее ntdll.RtlTimeToTimeFields На самом низком уровне считай из RTC.
ога. сойдет. спасибо. так прерывания в Windows вообще значит никогда не работают? ни int 100h никакое?