 |
Ассемблер в примерах - Работа с датами в FASM
- Вопрос:
- Каким образом в FASMе
1) получить Текущую дату на компьютере.
2) получить разность дат Текущей и на начало года
программа под Windows
Код
mov ah,2Ah
int 21h
Не работает
Есть в Kernel32.dll функция CurrentDateTimeString но она без точки входа
- Ответ:
-
1) Есть функция GetLocalTime(LPSYSTEMTIME lpSystemTime) (в терминах С)
Параметром у нее адрес вот такой структуры (опять же, в терминах С):
typedef struct _SYSTEMTIME {
WORD wYear; //год
WORD wMonth; //месяц (с 1)
WORD wDayOfWeek; //день недели (воскресенье 0)
WORD wDay; //день месяца
WORD wHour; //часы
WORD wMinute; //минуты
WORD wSecond; //секунды
WORD wMilliseconds; //милисекунды
} SYSTEMTIME;
int 21h можно было еще использовать только с 16-битными windows 3.1 :)
Для 32- и более - только через вызовы функций
2) Стандартной функции такой нет, но несложно написать самому:
Складываем число дней по месяцам до текущего, вот и будет разность дат
Не забываем про високосные года!
|  |