Masm32 не открывает windows.inc

Тема в разделе "WASM.BEGINNERS", создана пользователем Randomris, 8 янв 2020.

Метки:
  1. Randomris

    Randomris New Member

    Публикаций:
    0
    Регистрация:
    8 янв 2020
    Сообщения:
    5
    Здравствуйте форумчане! компилятор масм не открывает windows.inc
    Все перепробовал путь указывал и т.д.
    выдает
    fatal error A1000: cannot open file : \masm32\include\windows.inc
     
  2. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Относительный путь.
     
  3. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.708
    Randomris,
    а у тебя точно есть папка include в каталоге masm32? Если сборка 64-разрядная, тогда в masm32 папки include нет, а есть папка include64
     
  4. Randomris

    Randomris New Member

    Публикаций:
    0
    Регистрация:
    8 янв 2020
    Сообщения:
    5
    У меня есть эта папка и в ней есть нужный файл
    Программа установлена в первоначальном виде, ничего не изменено (ASM Visual)
     

    Вложения:

  5. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.708
    я видел порнофильм, который начинался именно такими словами ;)
    Randomris,
    только судя по картинке папка называется includes
    01.png
     
  6. Randomris

    Randomris New Member

    Публикаций:
    0
    Регистрация:
    8 янв 2020
    Сообщения:
    5
    Я задавал полный путь к нужному файлу, но все равно он выдает ошибку
     
  7. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.708
    Randomris,
    а почему я должен верить на слово? То что папка называлась не include, а includes уже выяснили... Какую ошибку у тебя сейчас выдает? Желательно картинкой и текст asm-файла также нужно прикрепить
     
  8. Randomris

    Randomris New Member

    Публикаций:
    0
    Регистрация:
    8 янв 2020
    Сообщения:
    5
    Код программы
    Код (ASM):
    1. .386p
    2. .model flat, stdcall
    3. option casemap:none
    4. includelib C:\Programms\ASM Visual\masm\32\includes\kernel32.lib
    5. includelib C:\Programms\ASM Visual\masm\32\includes\user32.lib
    6. include C:\Programms\ASM Visual\masm\32\includes\windows.inc
    7. include C:\Programms\ASM Visual\masm\32\includes\kernel32.inc
    8. include C:\Programms\ASM Visual\masm\32\includes\user32.inc
    9. .data
    10. newhwnd dd 0
    11. hInst dd 00000000h
    12. szTitleName db 'Window Application',0
    13. szClassName db 'ASMCLASS32',0
    14. msg MONMSGSTRUCT <?> ;  структура сообщения
    15. wc WNDCLASS <?> ; структура класса
    16. .code
    17. start:
    18. Invoke GetModuleHandle,0 ; получаем hInstanse
    19. Mov [hInst], eax
    20. Mov [wc.style], CS_HREDRAW+CS_VREDRAW+CS_GLOBALCLASS
    21. ; устанавливаем стиль окна
    22. Mov [wc.lpfnWndProc], offset WndProc ;
    23. Mov [wc.cbClsExtra], 0
    24. Mov [wc.cbWndExtra], 0
    25. Mov eax, [hInst]
    26. Mov [wc.hInstance], eax
    27. Invoke LoadIcon,0,IDI_APPLICATION ; получаем значок приложения по
    28. ; умолчанию
    29. Mov [wc.hIcon], eax
    30. Invoke LoadCursorA,0,IDC_ARROW ; получаем курсор по умолчанию
    31. Mov [wc.hCursor], eax
    32. Mov [wc.hbrBackground], COLOR_BACKGROUND+1
    33. Mov dword ptr [wc.lpszMenuName], 0
    34. Mov dword ptr [wc.lpszClassName], offset szClassName ; задаём имя класса
    35. ;окна
    36. Invoke RegisterClassA,offset wc ; регистрируем класс окна
    37. Push 0
    38. Push [hInst] ; дескриптор
    39. Push 0
    40. Push 0
    41. Push CW_USEDEFAULT ; высота
    42. Push CW_USEDEFAULT ; ширина
    43. Push CW_USEDEFAULT ; y
    44. Push CW_USEDEFAULT ; x
    45. Push WS_OVERLAPPEDWINDOW ; стиль
    46. Push offset szTitleName ; заголовок окна
    47. Push offset szClassName ; имя класса
    48. Push 0 ; дополнительный стиль
    49. Call CreateWindowEx ; создаём окно
    50. mov [newhwnd], eax ; сохраняем его дескриптор
    51. invoke ShowWindow,[newhwnd],SW_SHOWNORMAL; показываем окно
    52. invoke UpdateWindow, [newhwnd]; обновляем его
    53. msg_loop: ; запускаем цикл обработки сообщений
    54. invoke GetMessage,offset msg, 0,0,0
    55. cmp ax, 0
    56. je end_loop
    57. invoke TranslateMessage, offset msg
    58. invoke DispatchMessage, offset msg
    59. jmp msg_loop
    60. end_loop:
    61. invoke ExitProcess, 0
    62. WndProc proc uses ebx edi esi, hwnd:DWORD, wmsg:DWORD, wparam:DWORD, lparam:DWORD
    63. Cmp [wmsg], WM_DESTROY
    64. Je wmdestroy
    65. Cmp [wmsg], WM_KEYDOWN
    66. Je wmkeydown
    67. Invoke DefWindowProcA,[hwnd],[wmsg],[wparam],[lparam]
    68.   ; вызываем стандартный обработчик сообщений
    69. Jmp finish
    70. wmkeydown:
    71. cmp [wparam], VK_ESCAPE
    72. je wmdestroy; если нажата клавиша Escape то выход
    73. jmp finish
    74. wmdestroy:
    75. invoke PostQuitMessage, 0
    76. invoke ExitProcess, 0 ; выход
    77. finish:
    78. ret
    79. WndProc endp
    80. end start
    Все начало работать после переустановки программы и чистки всего реестра. Но появилась новая ошибка
    LINK : fatal error LNK1104: cannot open file "C:\Programms\ASM.lib"
    upload_2020-1-19_22-44-46.png
     
    Последнее редактирование модератором: 20 янв 2020
  9. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.708
    Randomris,
    так найди в своем IDE файл, который содержит строку "C:\Programms\ASM.lib" и исправь ее на "C:\Programms\ASM Visual\masm\32\lib"
     
  10. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Mikl___,

    Потом только выяснилось что у него ошибка в имени каталога, масм работает с относительными путями, если запихал в каталоги нужно указать прямой путь, иначе будет ошибка.

    А если билдер выдал cannot open file "C:\Programms\ASM.lib" это не с проста. Тем более что какой то левый IDE, параметры переданные линкеру не известны.

    С таким подходом вообще незачем браться за асм, будут косяки и трудности непрерывно. В примитивном мягко говоря выше коде коментов больше чем кода. Так не пишется, масм так и назван потому что это макро язык.
    --- Сообщение объединено, 20 янв 2020 ---
    > cmp ax, 0

    Какой дебил такое написал.. а куда делась старшая часть регистра, те его половина. А про инструкцию test авторы этого высера не слышали получается. Тогда как всегда:

    Intel® 64 and IA-32 architectures software developer’s manual combined volumes: 1, 2A, 2B, 2C, 2D, 3A, 3B, 3C, 3D, and 4

    https://software.intel.com/en-us/do...bined-volumes-1-2a-2b-2c-2d-3a-3b-3c-3d-and-4

    Изучать нужно с первого, а не как евреи с конца.
     
  11. Randomris

    Randomris New Member

    Публикаций:
    0
    Регистрация:
    8 янв 2020
    Сообщения:
    5
    Я только студент (1С группа), и сам занимаюсь асмом. По этому код взял с сайта (уже не помню откуда) и занимаюсь разбором кода.
    читаю книги и пытаюсь по ним изучать.
     
  12. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.708
    Randomris,
    вспоминай, ищи сайт, откуда скачал IDE, там же найдешь инструкцию об установке, прочитай ее несколько раз, разберись и установи ASM Visual по инструкции, никакой самодеятельности...
     
  13. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.574
    А лучше скачать оригинальный 32 битный масм32, и поставить в корень диска, а не в папку с пробелами. Т.к. все это весьма костыльно и может выдавать неожиданные глюки.
     
    Mikl___ нравится это.
  14. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.708
    Randomris,
    https://gri-software.com/ru/asmvisual/help/
    • Начало
      • Системные требования
      • Загрузка и установка
      • Обратная связь
    • ASM Visual
      • Интерфейс
      • Работа с проектами
      • Работа с кодом
      • Сборка программ
      • Отладка
      • Настройка среды
      • Метрики
      • Горячие клавиши
     
  15. Indy_

    Indy_ Well-Known Member

    Публикаций:
    4
    Регистрация:
    29 апр 2011
    Сообщения:
    4.775
    Randomris,

    > Я только студент (1С группа)

    Что то не помню в МКБ таких кодов :my_name_is_grisha:

    > читаю книги и пытаюсь по ним изучать.

    Не читай их, я тебе выше дал ведь ссылку. Есчо конечно не плохо было бы по логике и алго что то почитать, для общего развития так скажем; архитектур всяких много но принципы одинаковы :don-t_mention: