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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.04.2012, 19:06   #1
djonatan98
Форумчанин
 
Регистрация: 15.04.2012
Сообщений: 103
По умолчанию MASM32

Вобщем переду сразу к делу. Имеется код написанный на ассемблере с использованием библиотек MASM32. Мне нужно его откомпилировать в компиляторе ResEd,но сначала нужно создать билиотеки, настроить их и подключить файлы ресурсов, кто нибудь знает, как это сделать пошагово, напишите здесь.Заранее спасибо.

Вот исходник
Код:
.386 
.model flat, stdcall 
option casemap :none 
  
include \masm32\include\windows.inc 
include \masm32\macros\macros.asm 
uselib kernel32, user32, masm32, comctl32, ws2_32 
  
WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD 
AddLog PROTO :DWORD,:DWORD 
AddTextLog PROTO :DWORD 
Check PROTO :DWORD 
EnableControls PROTO :DWORD 
  
PortScanner = 1000 
TEST_BTN = 1001 
EXIT_BTN = 1002 
IDC_STOP = 1003 
IDC_IPADDR = 1005 
IDC_PORTLOW = 1007 
IDC_PORTHIGH = 1009 
IDC_LOG = 1010 
IDC_CLEANLOG = 1012 
IDC_TIMEOUT = 1013 
IDC_OPENONLY = 1016 
  
fd_struct STRUCT 
  fd_count dd ? 
  ssock dd ? 
fd_struct ENDS 
  
.data 
  checking db 0 
  err db "Ошибка", 0 
  
.data? 
  hInstance dd ? 
  hWnd dd ? 
  icce INITCOMMONCONTROLSEX <> 
  
  ip dd ? 
  porthigh dd ? 
  portlow dd ? 
  stopper db ? 
  
  timeout dd ? 
  
  openonly db ? 
  
.code 
start PROC 
  LOCAL WSAStruct :WSADATA 
  
  invoke WSAStartup, 0101h, addr WSAStruct 
  .if eax != 0 
    invoke MessageBox, 0, chr$("WSAStartup - ошибка"), offset err, MB_ICONERROR 
    invoke ExitProcess,eax 
    ret 
  .endif 
  
  mov icce.dwSize, SIZEOF INITCOMMONCONTROLSEX 
  mov icce.dwICC, ICC_DATE_CLASSES or \ 
                  ICC_INTERNET_CLASSES or \ 
                  ICC_PAGESCROLLER_CLASS or \ 
                  ICC_COOL_CLASSES 
  
  invoke InitCommonControlsEx, offset icce 
  
  invoke GetModuleHandle, NULL 
  mov hInstance, eax 
  
  invoke DialogBoxParam, hInstance, PortScanner, 0, offset WndProc, 0 
  
  call WSACleanup 
  
  invoke ExitProcess,eax 
ret 
start ENDP 
  
WndProc proc hWin :DWORD, uMsg :DWORD, wParam :DWORD, lParam :DWORD 
  switch uMsg 
    case WM_INITDIALOG 
      m2m hWnd, hWin 
      invoke SendMessage, hWin, WM_SETICON, 1, FUNC(LoadIcon, NULL, IDI_ASTERISK) 
      invoke SendDlgItemMessage, hWin, IDC_LOG, EM_SETLIMITTEXT, -1, 0 
      invoke SendDlgItemMessage, hWin, IDC_PORTLOW, EM_SETLIMITTEXT, 5, 0 
      invoke SendDlgItemMessage, hWin, IDC_PORTHIGH, EM_SETLIMITTEXT, 5, 0 
      invoke SendDlgItemMessage, hWin, IDC_TIMEOUT, EM_SETLIMITTEXT, 7, 0 
  
    case WM_COMMAND 
      switch wParam 
        case TEST_BTN 
          invoke SendDlgItemMessage, hWin, IDC_IPADDR, IPM_GETADDRESS, 0, offset ip 
          .if eax != 4 
            invoke MessageBox, hWin, chr$("Введите IP-адрес"), offset err, MB_ICONEXCLAMATION 
            xor eax, eax 
            ret 
          .endif 
  
          invoke GetDlgItemInt, hWin, IDC_PORTLOW, 0, FALSE 
          .if eax < 1 || eax > 65535 
            invoke MessageBox, hWin, chr$("Неверно введен начальный номер порта."), offset err, MB_ICONEXCLAMATION 
            xor eax, eax 
            ret 
          .endif 
  
          mov portlow, eax 
  
          invoke GetDlgItemInt, hWin, IDC_PORTHIGH, 0, FALSE 
          .if eax < 1 || eax > 65535 || portlow > eax 
            invoke MessageBox, hWin, chr$("Неверно введен конечный номер порта"), offset err, MB_ICONEXCLAMATION 
            xor eax, eax 
            ret 
          .endif 
  
          mov porthigh, eax 
  
          invoke GetDlgItemInt, hWin, IDC_TIMEOUT, 0, FALSE 
          .if eax < 10 
            invoke MessageBox, hWin, chr$("Слишком маленький таймаут"), offset err, MB_ICONEXCLAMATION 
            xor eax, eax 
            ret 
          .endif 
  
          mov timeout, eax 
  
          invoke SendDlgItemMessage, hWin, IDC_OPENONLY, BM_GETCHECK, 0, 0 
          .if eax == BST_CHECKED 
            mov openonly, 1 
          .else 
            mov openonly, 0 
          .endif 
  
  
          invoke EnableControls, 0 
  
          mov stopper, 0 
  
          invoke CreateThread, 0, 10240, offset Check, 0, 0, 0 
          .if eax>0 
            mov checking, 1 
            invoke CloseHandle, eax 
          .else 
            invoke MessageBox, hWin, chr$("Не удалось создать поток"), offset err, MB_ICONERROR 
            invoke EnableControls, 1 
          .endif 
  
        case IDC_CLEANLOG 
          invoke SetDlgItemText, hWin, IDC_LOG, chr$(0) 
        case IDC_STOP 
          mov stopper, 1 
        case EXIT_BTN 
          jmp exit_program 
      endsw 
    case WM_CLOSE 
      .if checking == 1 
        invoke MessageBox, hWin, chr$("Завершите проверку портов перед выходом."), offset err, MB_ICONEXCLAMATION 
        xor eax, eax 
        ret 
      .endif 
  
      exit_program: 
      invoke EndDialog, hWin, 0 
  
    endsw 
  
  xor eax, eax 
ret 
WndProc ENDP
Это основная часть кода дальше идет цикл проверки портов

Последний раз редактировалось rpy3uH; 15.04.2012 в 20:13.
djonatan98 вне форума Ответить с цитированием
Старый 16.04.2012, 07:16   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,694
По умолчанию

Цитата:
в компиляторе ResEd
Серьезно??? Я всегда думал, что ResEd = Resource Editor
p51x на форуме Ответить с цитированием
Старый 16.04.2012, 12:08   #3
djonatan98
Форумчанин
 
Регистрация: 15.04.2012
Сообщений: 103
По умолчанию ResEd

Я знаю. что это и с чем едят а попросил помоч настроить библиотеки. так как такой информации нигде ни нашел.
djonatan98 вне форума Ответить с цитированием
Старый 16.04.2012, 18:12   #4
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

А гуглить не пробовал? мне как-то сразу всё нашло:
http://kaimi.ru/2010/08/masm32-%D0%B...0%D0%BB%D0%BE/
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 16.04.2012, 19:17   #5
djonatan98
Форумчанин
 
Регистрация: 15.04.2012
Сообщений: 103
По умолчанию

Я как раз оттуда.Там не сказано как настроить его графически, и что делать если файлы ресурсов не подключаются

Вроде бы настроил его, но дальше не идет, не удается получить код. Вот взгляни - http://s019.radikal.ru/i618/1204/4e/e540e7bf1e9b.jpg

Слушай программа очень нужна. Сколько стоит я в долгу не останусь. Только не заламывайте сильно я студент!!

Последний раз редактировалось Stilet; 17.04.2012 в 13:44.
djonatan98 вне форума Ответить с цитированием
Старый 17.04.2012, 09:45   #6
alexcoder
Форумчанин
 
Регистрация: 31.05.2009
Сообщений: 786
По умолчанию

Код:
rc.exe disksize.Rc
ml /c /coff /Cp /nologo /Ie:\radasm\tools\masm32\include disksize.asm
LINK /out:disksize.exe /subsystem:windows /machine:i386 /libpathe:\radasm\tools\masm32\lib disksize.obj disksize.res
Вот пример команд компилирования масм-программы с ресурсами.
1-я строка компилирует ресурсы,
2-я ассемблирует текст программы, а последняя собирает все вместе.
Помощь с программами:
vk.com/alexcoder1
e-mail: informatik101@mail.ru
alexcoder вне форума Ответить с цитированием
Старый 17.04.2012, 11:55   #7
djonatan98
Форумчанин
 
Регистрация: 15.04.2012
Сообщений: 103
По умолчанию

А какую ты среду разработки используешь и совместима ли она с ОС Windows7-? Заранее спасибо.
djonatan98 вне форума Ответить с цитированием
Старый 17.04.2012, 14:29   #8
djonatan98
Форумчанин
 
Регистрация: 15.04.2012
Сообщений: 103
По умолчанию MASM32

Дело в том. что я программировал на таких языках С/С++ Pascal и не совсем понял куда эти строчки вписать в самой среде разработки, если можно пошагово изложите.
djonatan98 вне форума Ответить с цитированием
Старый 17.04.2012, 15:36   #9
DiemonStar
Старожил
 
Регистрация: 08.02.2012
Сообщений: 2,173
По умолчанию

1. Где вы здесь видели "среду разработки"? Редактор ресурсов - это не среда разработки

2. открою секрет, ассемблер обычно состоит из двух программ: компилятора и линкёра, т.е. два консольных приложения, которые посредством передачи правильных параметров преобразуют ваш код в программу. В вашем случае - к ним ещё редактор ресурсов добавляется.

3. Найдите нормальную книгу по программирование на ассемблере под Windows - там обычно подобные нюансы описываются очень хорошо. Ссылки есть в этой теме: http://programmersforum.ru/showthread.php?t=12343

4. можете подобрать себе IDE для программирования в более удобном для вас ключе. Поищите в данной теме: http://programmersforum.ru/showthread.php?t=139297
Правильно поставленная задача - три четверти решения.
DiemonStar вне форума Ответить с цитированием
Старый 17.04.2012, 16:55   #10
djonatan98
Форумчанин
 
Регистрация: 15.04.2012
Сообщений: 103
По умолчанию MASM32

А конкретно про resed есть материал-? О том как его настроить, подключить файлы ресурсов, оформить графически, отлинковать, указать пути и тп и все пошагово изложено-? Но в деталях в виде пошаговой инструкции к этому редактору ресурсов

Последний раз редактировалось djonatan98; 17.04.2012 в 16:59.
djonatan98 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
борьба c masm32 Krasi Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 12 02.02.2014 05:53
Установка MASM32. Samium Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 19.07.2012 19:04
masm32 Katya25 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 17.05.2011 08:40
Assembler masm32 Светланка Помощь студентам 1 04.01.2010 18:31
Assembler, masm32 angel28 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 29.12.2009 16:50