eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: SDK (+4 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Программирование —› Программа висит в процессах, но не запускается
Посл.ответ Сообщение

Ранг: 3.6 (гость)
Статус: Участник

Создано: 15 ноября 2015 06:19 New!
Цитата · Личное сообщение · #1

Code:
  1. TITLE Add and Subtract              (AddSub.asm)
  2.  
  3. ; This program adds and subtracts 32-bit integers.
  4. ; Last update: 06/01/2006
  5.  
  6. INCLUDE C:/masm32/include/Irvine32.inc
  7. includelib C:/masm32/lib/Irvine32.lib
  8.  
  9.  
  10. includelib C:/masm32/lib/kernel32.lib
  11. includelib C:/masm32/lib/user32.lib
  12.  
  13. .code
  14. main PROC
  15.  
  16.     mov eax,10000h      ; EAX = 10000h
  17.     add eax,40000h      ; EAX = 50000h
  18.     sub eax,20000h      ; EAX = 30000h
  19.     call    DumpRegs
  20.       call  WaitMsg
  21.  
  22.     exit
  23. main ENDP
  24. END main


вот программа компилируется без ошибок, запускаю ничего не происходит, но в процессах она есть. Подскажите плиз, как ее запустить


Ранг: 436.8 (мудрец)
Статус: Участник
_Вечный_Студент_

Создано: 15 ноября 2015 07:02 · Поправил: 15 ноября 2015 07:31 plutos New!
Цитата · Личное сообщение · #2

HAIRY пишет:
запускаю ничего не происходит


А что по вашему должно происходить? ожидаете увидеть user interface?

Не знаю, что именно происходит в процедуре DumpRegs. но, судя по всему, программа нормально запускается, но поскольку никаких окон не создает, ее не "видно" на экране монитора.
Запусти под debugger'ом (OllyDbg).

Ранг: 19.4 (новичок)
Статус: Участник

Создано: 15 ноября 2015 09:13 New!
Цитата · Личное сообщение · #3

plutos пишет:
но поскольку никаких окон не создает, ее не "видно" на экране монитора.

Она вроде как консольная. Попробовал собрать - работает: --> Link <--

HAIRY, может Irvine32.inc/Irvine32.lib старые, хз. Я собирал с этими: --> Link <-- - на Win 8.1 Pro x64 без проблем запустилось.

Добавлено спустя 1 минуту
Или собираете не как консольную?

| Сообщение посчитали полезным: HAIRY


Ранг: 404.8 (мудрец)
Статус: Участник

Создано: 15 ноября 2015 10:47 · Поправил: 15 ноября 2015 17:39 dosprog New!
Цитата · Личное сообщение · #4

dir:
Code:
  1. 15.11.2015  09:33     576 dumpregs.asm
  2. 15.11.2015  09:35   9 216 dumpregs.exe
  3. 29.07.2005  11:07   5 162 Irvine32.inc
  4. 13.06.2006  12:08  65 976 Irvine32.lib
  5. 15.11.2015  09:35   2 942 MAKE.BAT
  6. 19.07.2005  12:11  16 039 SmallWin.inc
  7. 15.04.2003  10:38   2 040 VirtualKeys.inc

dumpregs.asm:
Code:
  1. ..........
  2.   IF 0
  3. INCLUDE    C:/masm32/include/Irvine32.inc
  4. includelib C:/masm32/lib/Irvine32.lib
  5.   ELSE
  6. INCLUDE    Irvine32.inc
  7. includelib Irvine32.lib
  8.   ENDIF
  9. ..........

make.bat:
Code:
  1. set NAME=dumpregs
  2. \masm32\bin\ml //coff   %NAME%.asm
  3. \masm32\bin\Link /SUBSYSTEM:CONSOLE    %NAME%.obj


И всё работает.

| Сообщение посчитали полезным: HAIRY


Ранг: 3.6 (гость)
Статус: Участник

Создано: 15 ноября 2015 14:14 New!
Цитата · Личное сообщение · #5

elch, можете рассказать как собирать консольную программу? Я делаю так захожу в редактор MASM32 Editor вставляю код, сохраняю, потом Project - Build All, потом Project - Run.

Ранг: 19.4 (новичок)
Статус: Участник

Создано: 15 ноября 2015 18:17 New!
Цитата · Личное сообщение · #6

HAIRY пишет:
Я делаю так захожу в редактор MASM32 Editor вставляю код, сохраняю, потом Project - Build All, потом Project - Run.

Не знаю, не пользуюсь им, наверно где-то в свойствах проекта надо указать, что /SUBSYSTEM:CONSOLE. Я собирал с WinAsm (попался готовый проект на ту же тему, только с чуть другим примером), потом переделал по своему, для сборки батником - так тоже всё ОК. Вот эти два варианта + выше в посте dosprog та же подсказка.


{ Атач доступен только для участников форума } - ch03.2.rar


Ранг: 436.8 (мудрец)
Статус: Участник
_Вечный_Студент_

Создано: 15 ноября 2015 18:19 · Поправил: 15 ноября 2015 18:36 plutos New!
Цитата · Личное сообщение · #7

HAIRY пишет:
можете рассказать как собирать консольную программу?


\masm32\bin\Link /SUBSYSTEM:CONSOLE %NAME%.obj

в масм32 editor создать новый консольный проэкт, вставить туда свой код.
Тогда масм32 использует при сборке все нужные и правильные опции.

А еще проще не заморачиваться с масм32 пока что, а использовать указаный dosprog bat file.

| Сообщение посчитали полезным: HAIRY


Ранг: 3.6 (гость)
Статус: Участник

Создано: 15 ноября 2015 20:06 New!
Цитата · Личное сообщение · #8

спасибо всем за помощь, все получилось!


Ранг: 1984.7 (!!!!)
Статус: Модератор
retired

Создано: 15 ноября 2015 21:34 New!
Цитата · Личное сообщение · #9

Видимо, на этом можно закрыть тогда.
 eXeL@B —› Программирование —› Программа висит в процессах, но не запускается
Эта тема закрыта. Ответы больше не принимаются.

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS