Люди помогите мне с проблемой. У меня есть много интересных .asm программ, которые бы хотелось установить в Kolibri OS, сама-то проблема в том что все программы написанный на masm и не компилируются в FASM-е. Помогите мне решить эту проблему =)
EDIT by yogev_ezra: Изменил название темы на соответствующее вопросу
Проблема с портированием с MASM на FASM =)
to infinity and beyond
Кстати, вместо masm можно использовать JWasm (MASM-compatible assembler).
И в качестве примера(test.asm):Собирать так:
И в качестве примера(test.asm):
Spoiler:
Code: Select all
.586
.MODEL FLAT, stdcall
option casemap: none
; Event Constants
REDRAW_EVENT equ 1
KEY_EVENT equ 2
BUTTON_EVENT equ 3
MOUSE_EVENT equ 6
; Window Style Constants
WS_SKINNED_FIXED equ 4000000H
WS_SKINNED_SIZABLE equ 3000000H
WS_FIXED equ 0000000H
WS_SIZABLE equ 2000000H
WS_FILL_TRANSPARENT equ 40000000H
WS_FILL_GRADIENT equ 80000000H
WS_COORD_CLIENT equ 20000000H
WS_CAPTION equ 10000000H
; Caption Style Constants
CS_MOVABLE equ 00000000H
CS_IMMOVABLE equ 01000000H
; Event Mask Constants
EM_REDRAW equ 01H
EM_KEY equ 02H
EM_BUTTON equ 04H
EM_MOUSE equ 020H
PATH_SIZE equ 1024
PARAMS_SIZE equ 256
STACK_SIZE equ 256
SetEvent proto :dword
WaitEvent proto
DrawWindow proto :dword, :dword, :dword, :dword, :dword, :dword, :ptr, :dword
TerminateThread proto
.CODE
db "MENUET01"
dd 1
dd START_
dd END_
dd END_ + PATH_SIZE + PARAMS_SIZE + STACK_SIZE
dd END_ + PATH_SIZE + PARAMS_SIZE + STACK_SIZE
dd END_ + PATH_SIZE
dd END_
szHello:
db "Hello from JWasm!",0
START_:
invoke SetEvent, EM_REDRAW + EM_BUTTON
.repeat
invoke DrawWindow, 100, 170, 200, 150, WS_SKINNED_FIXED + WS_COORD_CLIENT + WS_CAPTION, 0CCDDEEH, szHello, CS_MOVABLE
invoke WaitEvent
.until eax != REDRAW_EVENT
invoke TerminateThread
; *********************************************************************************** ;
WaitEvent proc
mov eax, 10
int 64
ret
WaitEvent endp
; *********************************************************************************** ;
SetEvent proc uses ebx EventMask:dword
mov eax, 40
mov ebx, EventMask
int 64
ret
SetEvent endp
; *********************************************************************************** ;
DrawWindow proc uses ebx esi edi L:dword, W:dword, T:dword, H:dword, Style:dword, BackColor:dword, Caption:ptr, CaptionStyle:dword
; redraw.start
mov eax, 12
mov ebx, 1
int 64
; draw.window
xor eax, eax
mov ebx, L
shl ebx, 16
add ebx, W
mov ecx, T
shl ecx, 16
add ecx, H
mov edx, Style
or edx, BackColor
mov edi, Caption
mov esi, CaptionStyle
int 64
; redraw.finish
mov eax, 12
mov ebx, 2
int 64
ret
DrawWindow endp
; *********************************************************************************** ;
TerminateThread proc
or eax, -1
int 64
TerminateThread endp
; *********************************************************************************** ;
END_:
END
Code: Select all
jwasm -bin -Fo test.kex test.asm
Подниму тему, так как тот сайт JWasm умер, мы сохранили и подняли новый - http://jwasm.info (исходники сайта здесь https://github.com/JWasm/jwasm.github.io)
Сам JWasm можно взять здесь https://github.com/JWasm/JWasm - он теперь проверяется Coverity, Travis-CI и AppVeyor и автотестами.
Сам JWasm можно взять здесь https://github.com/JWasm/JWasm - он теперь проверяется Coverity, Travis-CI и AppVeyor и автотестами.
Кстати, существует ещё HJWasm.
http://github.com/Terraspace/HJWasm
Ветка на MASM-форуме http://masm32.com/board/index.php?board=51.0
http://www.terraspace.co.uk/hjwasm.htmlHJWasm is a free MASM-compatible assembler based on JWasm
http://github.com/Terraspace/HJWasm
Ветка на MASM-форуме http://masm32.com/board/index.php?board=51.0
Похоже, что HJWasm переименовали в UASM.
Теперь на masm-форуме доска(http://masm32.com/board/index.php?board=51.0) называется "UASM Assembler Development"
Вот тут http://www.terraspace.co.uk/uasm.html написано
Теперь на masm-форуме доска(http://masm32.com/board/index.php?board=51.0) называется "UASM Assembler Development"
Вот тут http://www.terraspace.co.uk/uasm.html написано
UASM is a free MASM-compatible assembler based on JWasm
Who is online
Users browsing this forum: No registered users and 0 guests