Здравствуйте форумчане! компилятор масм не открывает windows.inc Все перепробовал путь указывал и т.д. выдает fatal error A1000: cannot open file : \masm32\include\windows.inc
Randomris, а у тебя точно есть папка include в каталоге masm32? Если сборка 64-разрядная, тогда в masm32 папки include нет, а есть папка include64
У меня есть эта папка и в ней есть нужный файл Программа установлена в первоначальном виде, ничего не изменено (ASM Visual)
я видел порнофильм, который начинался именно такими словами Randomris, только судя по картинке папка называется includes
Randomris, а почему я должен верить на слово? То что папка называлась не include, а includes уже выяснили... Какую ошибку у тебя сейчас выдает? Желательно картинкой и текст asm-файла также нужно прикрепить
Код программы Код (ASM): .386p .model flat, stdcall option casemap:none includelib C:\Programms\ASM Visual\masm\32\includes\kernel32.lib includelib C:\Programms\ASM Visual\masm\32\includes\user32.lib include C:\Programms\ASM Visual\masm\32\includes\windows.inc include C:\Programms\ASM Visual\masm\32\includes\kernel32.inc include C:\Programms\ASM Visual\masm\32\includes\user32.inc .data newhwnd dd 0 hInst dd 00000000h szTitleName db 'Window Application',0 szClassName db 'ASMCLASS32',0 msg MONMSGSTRUCT <?> ; структура сообщения wc WNDCLASS <?> ; структура класса .code start: Invoke GetModuleHandle,0 ; получаем hInstanse Mov [hInst], eax Mov [wc.style], CS_HREDRAW+CS_VREDRAW+CS_GLOBALCLASS ; устанавливаем стиль окна Mov [wc.lpfnWndProc], offset WndProc ; Mov [wc.cbClsExtra], 0 Mov [wc.cbWndExtra], 0 Mov eax, [hInst] Mov [wc.hInstance], eax Invoke LoadIcon,0,IDI_APPLICATION ; получаем значок приложения по ; умолчанию Mov [wc.hIcon], eax Invoke LoadCursorA,0,IDC_ARROW ; получаем курсор по умолчанию Mov [wc.hCursor], eax Mov [wc.hbrBackground], COLOR_BACKGROUND+1 Mov dword ptr [wc.lpszMenuName], 0 Mov dword ptr [wc.lpszClassName], offset szClassName ; задаём имя класса ;окна Invoke RegisterClassA,offset wc ; регистрируем класс окна Push 0 Push [hInst] ; дескриптор Push 0 Push 0 Push CW_USEDEFAULT ; высота Push CW_USEDEFAULT ; ширина Push CW_USEDEFAULT ; y Push CW_USEDEFAULT ; x Push WS_OVERLAPPEDWINDOW ; стиль Push offset szTitleName ; заголовок окна Push offset szClassName ; имя класса Push 0 ; дополнительный стиль Call CreateWindowEx ; создаём окно mov [newhwnd], eax ; сохраняем его дескриптор invoke ShowWindow,[newhwnd],SW_SHOWNORMAL; показываем окно invoke UpdateWindow, [newhwnd]; обновляем его msg_loop: ; запускаем цикл обработки сообщений invoke GetMessage,offset msg, 0,0,0 cmp ax, 0 je end_loop invoke TranslateMessage, offset msg invoke DispatchMessage, offset msg jmp msg_loop end_loop: invoke ExitProcess, 0 WndProc proc uses ebx edi esi, hwnd:DWORD, wmsg:DWORD, wparam:DWORD, lparam:DWORD Cmp [wmsg], WM_DESTROY Je wmdestroy Cmp [wmsg], WM_KEYDOWN Je wmkeydown Invoke DefWindowProcA,[hwnd],[wmsg],[wparam],[lparam] ; вызываем стандартный обработчик сообщений Jmp finish wmkeydown: cmp [wparam], VK_ESCAPE je wmdestroy; если нажата клавиша Escape то выход jmp finish wmdestroy: invoke PostQuitMessage, 0 invoke ExitProcess, 0 ; выход finish: ret WndProc endp end start Все начало работать после переустановки программы и чистки всего реестра. Но появилась новая ошибка LINK : fatal error LNK1104: cannot open file "C:\Programms\ASM.lib"
Randomris, так найди в своем IDE файл, который содержит строку "C:\Programms\ASM.lib" и исправь ее на "C:\Programms\ASM Visual\masm\32\lib"
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 Изучать нужно с первого, а не как евреи с конца.
Я только студент (1С группа), и сам занимаюсь асмом. По этому код взял с сайта (уже не помню откуда) и занимаюсь разбором кода. читаю книги и пытаюсь по ним изучать.
Randomris, вспоминай, ищи сайт, откуда скачал IDE, там же найдешь инструкцию об установке, прочитай ее несколько раз, разберись и установи ASM Visual по инструкции, никакой самодеятельности...
А лучше скачать оригинальный 32 битный масм32, и поставить в корень диска, а не в папку с пробелами. Т.к. все это весьма костыльно и может выдавать неожиданные глюки.
Randomris, https://gri-software.com/ru/asmvisual/help/ Начало Системные требования Загрузка и установка Обратная связь ASM Visual Интерфейс Работа с проектами Работа с кодом Сборка программ Отладка Настройка среды Метрики Горячие клавиши
Randomris, > Я только студент (1С группа) Что то не помню в МКБ таких кодов > читаю книги и пытаюсь по ним изучать. Не читай их, я тебе выше дал ведь ссылку. Есчо конечно не плохо было бы по логике и алго что то почитать, для общего развития так скажем; архитектур всяких много но принципы одинаковы