Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .486 ; create 32 bit code
- .model flat, stdcall ; 32 bit memory model
- option casemap :none ; case sensitive
- include \masm32\include\windows.inc ; always first
- include \masm32\macros\macros.asm ; MASM support macros
- ; -----------------------------------------------------------------
- ; include files that have MASM format prototypes for function calls
- ; -----------------------------------------------------------------
- include \masm32\include\masm32.inc
- include \masm32\include\gdi32.inc
- include \masm32\include\fpu.inc
- include \masm32\include\user32.inc
- include \masm32\include\kernel32.inc
- include c:\masm32\include\msvcrt.inc
- includelib c:\masm32\lib\msvcrt.lib
- includelib c:\masm32\lib\fpu.lib
- ; ------------------------------------------------
- ; Library files that have definitions for function
- ; exports and tested reliable prebuilt code.
- ; ------------------------------------------------
- includelib \masm32\lib\masm32.lib
- includelib \masm32\lib\gdi32.lib
- includelib \masm32\lib\user32.lib
- includelib \masm32\lib\kernel32.lib
- .data ; директива определения данных
- _temp1 dd ?,0
- _temp2 dd ?,0
- _const1 dd 2
- _const2 dd 8
- _const3 dd 9
- borderLeft DWORD -1.0
- borderRight DWORD 1.2
- _title db "Лабораторна робота №2. операції порівнняння",0
- strbuf dw ?,0
- _text db "masm32. Вивід результата через MessageBox:",0ah,
- "y=2ab-8c/b d>a",0ah,
- "y=8d-9d/c d<=a",0ah,
- "Результат: %d — ціла частина",0ah, 0ah,
- "Вовчак Анастасія Василівна",0
- MsgBoxCaption db "Пример окна сообщения",0
- MsgBoxText_1 db "порівнняння _d >_a",0
- MsgBoxText_2 db "порівнняння _d<=_a",0
- .const
- NULL equ 0
- MB_OK equ 0
- .code ; директива начала сегмента команд
- _start: ; метка начала программы с именем _start
- main proc
- LOCAL _x: DWORD
- mov _x, sval(input("vvedite x = "))
- finit
- fld borderLeft
- fld _x
- fucomi
- jbe first
- fld borderRight
- fld _x
- fucomi
- jbe second
- INVOKE MessageBoxA, NULL, ADDR MsgBoxText_1, ADDR MsgBoxCaption, MB_OK
- invoke wsprintf, ADDR strbuf, ADDR _text, _const1
- invoke MessageBox, NULL, addr strbuf, addr _title, MB_ICONINFORMATION
- invoke ExitProcess, 0
- jmp lexit ;переходим на метку exit (GOTO exit)
- first:
- INVOKE MessageBoxA, NULL, ADDR MsgBoxText_2, ADDR MsgBoxCaption, MB_OK
- invoke wsprintf, ADDR strbuf, ADDR _text, _const2
- invoke MessageBox, NULL, addr strbuf, addr _title, MB_ICONINFORMATION
- invoke ExitProcess, 0
- jmp lexit
- second:
- INVOKE MessageBoxA, NULL, ADDR MsgBoxText_2, ADDR MsgBoxCaption, MB_OK
- invoke wsprintf, ADDR strbuf, ADDR _text, _const3
- invoke MessageBox, NULL, addr strbuf, addr _title, MB_ICONINFORMATION
- invoke ExitProcess, 0
- lexit:
- ret
- main endp
- ret ; возврат управления ОС
- end _start ; завершение программы с именем _start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement