C:\MASM32\MACROS\strings.mac

Тема в разделе "WASM.ASSEMBLER", создана пользователем vitalik, 2 окт 2009.

  1. vitalik

    vitalik New Member

    Публикаций:
    0
    Регистрация:
    2 окт 2009
    Сообщения:
    5
    Помогите найти этот инклудовский файл для того, чтобы у меня скомпилировался проект. Я перелазил весь интернет и его не нашел.
    Компилим программу - аналог команды DIR. Она ищет в указанной директории файлы по маске и выводит результат с атрибутами файлов.
    Код (Text):
    1. ;Инклудовский файл
    2. include windows.inc
    3. include user32.inc
    4. include kernel32.inc
    5. include masm32.inc
    6. include C:\MASM32\MACROS\strings.mac
    7. includelib kernel32.lib
    8. includelib masm32.lib
    9. includelib user32.lib
    10.  
    11. Main   PROTO
    12.  
    13. .data
    14. FileAttr                        BYTE "--ad-shr"
    15. CurrentFileAttr                 BYTE "-------- "
    16. CurrentFileDate             BYTE "00/00/0000 "
    17. CurrentFileTime             BYTE "00:00:00",0
    18.  
    19. .data?
    20. hFindNextFile                   DWORD ?
    21. DirInfo                     WIN32_FIND_DATA <>
    22. DateTimeInfo                    SYSTEMTIME <>
    23. CurrentFileName             BYTE MAX_PATH+4 dup(?)
    24. CurrentFileSize             BYTE 10 dup(?)     
    25.  
    26.  
    27. ;Код программы
    28. .386
    29. .model flat, stdcall
    30. option casemap :none
    31. include lst.inc
    32.              
    33. .code
    34. start:
    35.       invoke Main
    36.       invoke ExitProcess,0
    37. Main proc
    38. LOCAL Buffer[MAX_PATH+1]:BYTE
    39.     invoke AllocConsole
    40.     invoke GetCL, 1, ADDR Buffer
    41.     .if eax!=1
    42.         mov dword ptr Buffer, 002A2E2Ah ;*.*
    43.     .endif
    44.  
    45.     invoke FindFirstFile,ADDR Buffer, ADDR DirInfo
    46. ;WIN32_FIND_DATA STRUCT
    47. ;  dwFileAttributes         DWORD      ?
    48. ;  ftCreationTime           FILETIME <>
    49. ;  ftLastAccessTime         FILETIME <>
    50. ;  ftLastWriteTime          FILETIME <>
    51. ;  nFileSizeHigh            DWORD      ?
    52. ;  nFileSizeLow             DWORD      ?
    53. ;  dwReserved0              DWORD      ?
    54. ;  dwReserved1              DWORD      ?
    55. ;  cFileName                    BYTE MAX_PATH dup(?)
    56. ;  cAlternate                   BYTE 14 dup(?)
    57. ;WIN32_FIND_DATA ENDS
    58.  
    59.     .if eax== INVALID_HANDLE_VALUE
    60.         invoke StdOut, $CTA0("File not found ")
    61.         invoke StdOut, ADDR Buffer
    62.         ret
    63.     .endif 
    64.     mov hFindNextFile, eax
    65.     .REPEAT
    66.          mov ebx,DirInfo.dwFileAttributes
    67.          lea esi,FileAttr
    68.          lea edi,CurrentFileAttr
    69.          mov dword ptr [edi],"----"
    70.          mov dword ptr [edi+4],"----"
    71.          mov ecx,8
    72.     @@: lodsb
    73.         shl bl,1
    74.         .if CARRY?
    75.             stosb
    76.         .elseif
    77.             inc edi
    78.         .endif
    79.         loop @B
    80.         invoke FileTimeToSystemTime,ADDR DirInfo.ftCreationTime, ADDR DateTimeInfo
    81. ;SYSTEMTIME STRUCT
    82. ;  wYear                WORD      ?
    83. ;  wMonth               WORD      ?
    84. ;  wDayOfWeek        WORD      ?
    85. ;  wDay                 WORD      ?
    86. ;  wHour                WORD      ?
    87. ;  wMinute              WORD      ?
    88. ;  wSecond              WORD      ?
    89. ;  wMilliseconds        WORD      ?
    90. ;SYSTEMTIME ENDS
    91.         lea edi,CurrentFileDate
    92.         mov ax, DateTimeInfo.wDay
    93.         aam
    94.         xchg al,ah
    95.         or ax,3030h
    96.         mov word ptr [edi],ax
    97.        
    98.         mov ax, DateTimeInfo.wMonth
    99.         aam
    100.         xchg al,ah
    101.         or ax,3030h
    102.         mov word ptr [edi+3],ax
    103.        
    104.         xor ebx,ebx
    105.         mov bx, DateTimeInfo.wYear
    106.         lea edi,[edi+6]
    107.         invoke dwtoa, ebx, edi
    108.         mov byte ptr [edi+4],20h
    109.                
    110.         mov ax, DateTimeInfo.wHour
    111.         aam
    112.         xchg al,ah
    113.         or ax,3030h
    114.         mov word ptr CurrentFileTime,ax
    115.        
    116.         mov ax, DateTimeInfo.wMinute
    117.         aam
    118.         xchg al,ah
    119.         or ax,3030h
    120.         mov word ptr CurrentFileTime+3,ax
    121.        
    122.         mov ax, DateTimeInfo.wSecond
    123.         aam
    124.         xchg al,ah
    125.         or ax,3030h
    126.         mov word ptr CurrentFileTime+6,ax
    127.         invoke StdOut, ADDR CurrentFileAttr
    128.        
    129.         mov ebx, DirInfo.nFileSizeLow
    130.         lea edi,Buffer
    131.         lea esi,CurrentFileSize
    132.         invoke dwtoa, ebx, esi
    133.         invoke lstrlen,esi
    134.         mov ecx,11
    135.         sub ecx,eax
    136.         mov ebx,eax
    137.         mov al,20h
    138.         rep stosb
    139.         lea esi,CurrentFileSize
    140.         mov ecx,ebx
    141.         rep movsb
    142.         mov word ptr [edi],20h
    143.         invoke StdOut, ADDR Buffer
    144.        
    145.         lea esi,CurrentFileName
    146.         invoke CharToOem, ADDR DirInfo.cFileName,esi
    147.         invoke lstrlen,esi
    148.         mov dword ptr [esi+eax],0A0Dh
    149.         invoke StdOut, esi
    150.         invoke FindNextFile,hFindNextFile,ADDR DirInfo
    151.     .UNTIL  eax==FALSE 
    152. ret
    153. Main endp
    154. end start
     
  2. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    это макросы Four-F
     
  3. S_Alex

    S_Alex Alex

    Публикаций:
    0
    Регистрация:
    27 авг 2004
    Сообщения:
    561
    Адрес:
    Ukraine
    Скачай KmdKit от Four-F, он там. Сам его юзаю.