Здравствуйте.Подскажите пожалуйста как при испоьзовании ф-ии wsprintf выводить дату в полном и сокращенном формате (беру с DATA SYSTEMTIME).
приблизительно так Код (Text): .486 .model flat, stdcall option casemap:none include \masm32\include\windows.inc include \masm32\include\kernel32.inc include \masm32\include\user32.inc includelib user32.lib includelib kernel32.lib .DATA szCaption db "LocalTime",0 szFormat db "%s %02u %04u at %02u:%02u:%02u",0 ALIGN DWORD month db "Jan",0 db "Feb",0 db "Mar",0 db "Apr",0 db "May",0 db "Jun",0 db "Jul",0 db "Aug",0 db "Sep",0 db "Oct",0 db "Nov",0 db "Dec",0 .DATA? ALIGN DWORD _st SYSTEMTIME <> buffer db 128 dup (?) .CODE ALIGN DWORD start: mov ebx, OFFSET _st invoke GetLocalTime, ebx assume ebx:ptr SYSTEMTIME xor eax, eax mov ax, [ebx].wSecond push eax ; 1 mov ax, [ebx].wMinute push eax ; 2 mov ax, [ebx].wHour push eax ; 3 mov ax, [ebx].wYear push eax ; 4 mov ax, [ebx].wDay push eax ; 5 mov ax, [ebx].wMonth lea eax, [month-4+eax*4] push eax ; 6 assume ebx:nothing push OFFSET szFormat ; 7 mov esi, OFFSET buffer push esi ; 8 call wsprintf add esp, (8 * SIZEOF DWORD) invoke MessageBox, NULL, esi, OFFSET szCaption, MB_OK or MB_ICONINFORMATION invoke ExitProcess, 0 End start