Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Ср ноя 22, 2017 5:03 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 6 сообщений ] 
Автор Сообщение
СообщениеДобавлено: Пт фев 07, 2014 5:52 pm 
Не в сети

Зарегистрирован: Чт янв 30, 2014 7:01 pm
Сообщения: 2
Люди помогите мне с проблемой. У меня есть много интересных .asm программ, которые бы хотелось установить в Kolibri OS, сама-то проблема в том что все программы написанный на masm и не компилируются в FASM-е. Помогите мне решить эту проблему =)

EDIT by yogev_ezra: Изменил название темы на соответствующее вопросу


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Пт фев 07, 2014 6:14 pm 
Не в сети

Зарегистрирован: Вт апр 12, 2011 11:19 pm
Сообщения: 1077
http://kolibri-n.org/inf/hll/hll.php

_________________
я лишь учусь


Вернуться к началу
СообщениеДобавлено: Пн фев 24, 2014 8:22 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1080
Кстати, вместо masm можно использовать JWasm (MASM-compatible assembler).
И в качестве примера(test.asm):
Спойлер: Показать
Код:
.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

Собирать так:
Код:
jwasm -bin -Fo test.kex test.asm


Вернуться к началу
СообщениеДобавлено: Ср мар 16, 2016 4:02 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
Подниму тему, так как тот сайт JWasm умер, мы сохранили и подняли новый - http://jwasm.info (исходники сайта здесь https://github.com/JWasm/jwasm.github.io)

Сам JWasm можно взять здесь https://github.com/JWasm/JWasm - он теперь проверяется Coverity, Travis-CI и AppVeyor и автотестами.


Вернуться к началу
СообщениеДобавлено: Пт июн 10, 2016 4:49 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1080
Кстати, существует ещё HJWasm.
Цитата:
HJWasm is a free MASM-compatible assembler based on JWasm

http://www.terraspace.co.uk/hjwasm.html
http://github.com/Terraspace/HJWasm
Ветка на MASM-форуме http://masm32.com/board/index.php?board=51.0


Вернуться к началу
СообщениеДобавлено: Пт июл 07, 2017 9:26 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1080
Похоже, что HJWasm переименовали в UASM.
Теперь на 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


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 6 сообщений ] 

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB