Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2010, 15:43   #1
Sobaka_ru
Пользователь
 
Регистрация: 09.12.2010
Сообщений: 44
По умолчанию Из masm в fasm ( К среде )

Помогите переделать masm в fasm пожалуйста,очень надо (( До серды... еще разобрать потом.. (((

Помогите переделать masm в fasm пожалуйста....

функция lg(x): ( Если у кого есть програмка,напишите пожалуйста...


.486
.model flat,stdcall
option casemap :none ; case sensitive

include \masm32\include\windows.inc

include \masm32\include\kernel32.inc
include \masm32\include\user32.inc
include \masm32\include\gdi32.inc
include \masm32\include\fpu.inc

includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib
includelib \masm32\lib\gdi32.lib
includelib \masm32\lib\fpu.lib

Edit_ID1 EQU 3000
Edit_ID2 EQU 3001
Button_ID1 EQU 3002
Static_ID1 EQU 3003
Static_ID2 EQU 3004

.data

I_float dt 0
X dt 0

I_temp dd 0
J_temp dd 0

I_float32 dd 0
J_float32 dd 0

wc WNDCLASSA <>
hInstance dd 0
szClassName db "const_float",0
szTitleName db "const_float",0
newhwnd dd 0
msg MSG <>

hwndStatic1 dd 0
hwndStatic2 dd 0
hwndEdit1 dd 0
hwndEdit2 dd 0
hwndButton1 dd 0

string_for_button1 db "посчитать lg", 0

string_for_static1 db "входное значение:", 0
string_for_static2 db "выходное значение:", 0
text_error1 db "string - not float",0
StaticClassName db "STATIC", 0
EditClassName db "edit", 0
ButtonClassName db "button", 0

input_bufer db 30 dup (?)
output_bufer db 30 dup (?)


.code
start:
; initialize the WndClass structure
mov [wc.style], CS_GLOBALCLASS
mov [wc.lpfnWndProc], offset WndProc
mov [wc.cbClsExtra], 0
mov [wc.cbWndExtra], 0

invoke GetModuleHandleA, 0
mov [hInstance], eax
mov [wc.hInstance], eax
;-------ikonka---------------
invoke LoadIconA ,[hInstance], 0
mov [wc.hIcon], eax

invoke LoadCursorA, 0 , IDC_ARROW
mov [wc.hCursor], eax

invoke GetStockObject, COLOR_BACKGROUND
mov [wc.hbrBackground], COLOR_BTNSHADOW

mov [wc.lpszMenuName], 0
mov [wc.lpszClassName], offset szClassName
invoke RegisterClassA, offset wc

invoke CreateWindowExA, 0,offset szClassName,offset szTitleName, \
WS_SYSMENU+WS_GROUP,CW_USEDEFAULT, \
CW_USEDEFAULT,300,200,0,0, \
[hInstance], 0
mov [newhwnd], eax

invoke ShowWindow, [newhwnd], SW_SHOWNORMAL
invoke UpdateWindow, [newhwnd]

msg_loop:
invoke GetMessage, offset msg, 0, 0, 0
cmp eax, 0
je end_loop
invoke TranslateMessage, offset msg
invoke DispatchMessageA, offset msg
jmp msg_loop
end_loop:
invoke ExitProcess, [msg.wParam]

WndProc proc uses ebx edi esi, hwnd:DWORD, wmsg:DWORD,\
wparam:DWORD, lparam:DWORD

cmp [wmsg], WM_CREATE
je wmcreate
cmp [wmsg], WM_DESTROY
je wmdestroy
cmp [wmsg], WM_CLOSE
je wmdestroy
cmp [wmsg], WM_COMMAND
je wmcommand_select
invoke DefWindowProcA, [hwnd],[wmsg],[wparam],[lparam]
ret

wmcommand_select:
cmp lparam, 0
je wmcommand
jmp wmcommand_key

wmcommand:
mov eax, 0
ret

wmcommand_key:
mov eax, [wparam]
mov ecx, eax
shr eax, 16

cmp cx, Button_ID1
je wmcommand_1
ret

wmcommand_1:
cmp ax, BN_CLICKED
je wmcommand_1_job
ret

wmcommand_1_job:
invoke SendMessage, [hwndEdit1], WM_GETTEXT, 25, offset [input_bufer]
invoke FpuAtoFL, addr [input_bufer], addr [X], DEST_MEM
cmp eax, 0
je wmcommand_1_job_error

fld [X]
fldlg2
fxch
fyl2x
fstp [X]

invoke FpuFLtoA, addr [X], 4, addr [output_bufer], STR_REG + SRC1_REAL + SRC2_DIMM
invoke SendMessage, [hwndEdit2], WM_SETTEXT, 0, offset [output_bufer]
mov eax, 0
ret

wmcommand_1_job_error:
invoke MessageBox, [hwnd], addr [text_error1], 0, MB_OK + MB_ICONEXCLAMATION
ret

wmcreate:
invoke CreateWindowExA, 0, offset [StaticClassName], \
offset [string_for_static1], WS_CHILD + WS_VISIBLE,\
20,25,180,15, [hwnd], Static_ID1, hInstance, NULL
mov [hwndStatic1], eax
invoke CreateWindowExA, WS_EX_CLIENTEDGE, offset [EditClassName], \
0, WS_CHILD + WS_VISIBLE + ES_LEFT,\
20,45,120,20,\
[hwnd], Edit_ID1, hInstance, NULL
mov [hwndEdit1], eax

invoke CreateWindowExA, 0 , offset [ButtonClassName], \
offset [string_for_button1], WS_CHILD + WS_VISIBLE + BS_CENTER, \
30,70,90,20,\
[hwnd], Button_ID1, hInstance, NULL
mov [hwndButton1], eax

invoke CreateWindowExA, 0, offset [StaticClassName], \
offset [string_for_static2], WS_CHILD + WS_VISIBLE,\
20,100,180,15, [hwnd], Static_ID2, hInstance, NULL
mov [hwndStatic2], eax

invoke CreateWindowExA, WS_EX_CLIENTEDGE, offset [EditClassName], \
0, WS_CHILD + WS_VISIBLE + ES_LEFT,\
20,120,120,20,\
[hwnd], Edit_ID2, hInstance, NULL
mov [hwndEdit2], eax

finit
ret

wmdestroy:
invoke PostQuitMessage, 0
mov eax, TRUE
ret
WndProc endp
end start
Sobaka_ru вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LEA [FASM] m32 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 03.10.2010 13:57
Вопросы по FASM Crivel Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 18.06.2009 12:02
MySQL via FASM Ivan_32 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 14.05.2009 04:55
tasm>>fasm better Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 11 09.02.2009 19:34
Обьясните различия между - FASM, WASM, VASM, MASM, TASM Amancha Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 9 17.01.2009 15:38