486 ; это заголовок и опции для программы
.model flat,stdcall
options casemap : none ;case sentivive
include windows.inc ; макросы для виндоуз
include user32.inc ; макросы для user32
include kernel32.inc
incudelib user32.lib ; библиотека для user32 именно она и нужна для линковки
includelib kernel.lib
;#######################################################
.data
szTitle db "Message",0
szMessage db "Hello, World!",0
.code
start:
; старт программы и передача аргументов в стек см. код на с ниже
push MB_OK + MB_ICONINFORMATION ; Кнопка и пиктограмамма
push offset szTitle ;строка заголовок окна
push offset szMessage ; текст выводимого сообщения
push 0 ;указатель на родительское окно
call MessageBox ; вызов функции
push 0 ;код завершения программы
call ExitProcess ; выход из программы с кодом возврата 0
end start
https://learn.microsoft.com/en-us/windows/win32/ap...
int MessageBox(
[in, optional] HWND hWnd,
[in, optional] LPCTSTR lpText,
[in, optional] LPCTSTR lpCaption,
[in] UINT uType
);
То есть вам ничего не нужно дизасемблировать, но если вам нужно push MB_OK + MB_ICONINFORMATION ; Кнопка и пиктограмамма
это числа определенные в инклюдах
Апдейт
---------------------------------------
Устанавливаете масм по моей ссылке.
Фиксите код
.486
.MODEL Flat,StdCall
OPTION CaseMap:None
include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
;#######################################################
.data
szTitle db "Message",0
szMessage db "Hello, World!",0
.code
start:
push MB_OK + MB_ICONINFORMATION ; Кнопка и пиктограмамма
push offset szTitle ;строка заголовок окна
push offset szMessage ; текст выводимого сообщения
push 0 ;указатель на родительское окно
call MessageBox
push 0 ;код завершения программы
call ExitProcess
end start
Создаете файл для сборки build.bat
set path=c:\masm32\bin
set lib=c:\masm32\lib
REM собираем без излишних сообщений в формате coff только обьектный файл
ml /c /nologo /coff test.asm
REM линкуем для виндоуз, релиз, ставим маленькое выравнивание что бы меньше был файл, указываем что библиотеки не нужны и указываем явно какие линкуем, сливаем 2 секции для уменьшения размера
link /SUBSYSTEM:WINDOWS /release /opt:win98 /NODEFAULTLIB kernel32.lib user32.lib /MERGE:.rdata=.text /MERGE:.data=.text test.obj
Ок дальше дизасемблим через
https://www.ollydbg.de/download.htm
Видим что код совпадает, сравните с исходным.
PS странный у вас препод