Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler
Регистрация

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 22.05.2019, 14:20   #1
Mishka_M
Пользователь
 
Регистрация: 12.05.2018
Сообщений: 29
Репутация: 10
По умолчанию Проблема с созданием .exe

Добрый день. Заранее благодарен за помощь.
Суть проблемы.
Имеется код.
Код:

.386
.model flat, stdcall
option casemap : none

include C:\masm32\include\kernel32.inc
include C:\masm32\include\msvcrt.inc

includelib C:\masm32\lib\kernel32.lib
includelib C:\masm32\lib\msvcrt.lib

CRLF equ 13, 10

.data
    cmpStr db "The string of text for compare with entered symbol ascii code", 0
    cmpStrComment db "The string for comparement is: ", 0
    msgInviteInput db CRLF, "Enter any char for comparement: ", 0
    msgRes db "Result is ", 0
    msgFinal db CRLF, "Enter any char and press 'Enter' for exit", CRLF, 0
    
    formatInt db '%d',0
    formatStr db '%s',0
.data?             
    cmpChar db ?
.code
start:
    
    invoke crt_printf, ADDR formatStr, ADDR cmpStrComment
    invoke crt_printf, ADDR formatStr, ADDR cmpStr
    invoke crt_printf, ADDR formatStr, ADDR msgInviteInput 
    invoke crt_scanf, ADDR formatStr, ADDR cmpChar
    mov al, cmpChar
    mov edi, offset cmpStr
    mov ecx, offset cmpStrComment
    sub ecx, edi
    sub ecx, 1 
    xor ebx, ebx
    cld  
    lp1:
        scasb 
        ja skip
        inc ebx
        skip:
    loop lp1
    invoke crt_printf, ADDR formatStr, ADDR msgRes
    invoke crt_printf, ADDR formatInt, ebx
    invoke crt_printf, ADDR formatStr, ADDR msgFinal
    invoke crt_scanf, ADDR formatStr, ADDR cmpChar
    invoke ExitProcess, 0
end start

Собираю его в exe при помощи батника с кодом:
Код:

set filename=ipr1
c:\masm32\bin\ml /c /Cp /coff %filename%.asm
c:\masm32\bin\link /SUBSYSTEM:WINDOWS %filename%.obj
del %filename%.obj

Все отлично, компилируется exe, но при запуске что то быстро выполняется и тишина, а по-идее должен высветить запрос на ввод символа. Не могу залить скрин, какая-то проблема с вложениями, постоянно пишет неудачная загрузка.

Так вот, кто может подсказать, в чем все-таки дело? В коде или я как-то не так собираю exe?
Mishka_M вне форума   Ответить с цитированием
Старый 22.05.2019, 19:10   #2
FPaul
Форумчанин
 
Регистрация: 25.01.2015
Сообщений: 410
Репутация: 236
По умолчанию

/SUBSYSTEM:console
или инициализировать собственную консоль обращением к WinAPI
FPaul вне форума   Ответить с цитированием
Старый 22.05.2019, 21:40   #3
Mishka_M
Пользователь
 
Регистрация: 12.05.2018
Сообщений: 29
Репутация: 10
По умолчанию

Цитата:
Сообщение от FPaul Посмотреть сообщение
/SUBSYSTEM:console
или инициализировать собственную консоль обращением к WinAPI
огромное спасибо, именно то, что и надо было
Mishka_M вне форума   Ответить с цитированием
Ответ

Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с созданием radiobutton -COREY- Win Api 3 10.05.2011 02:32
Проблема с созданием php галереи ZvEr_HaCkEr PHP 2 11.03.2011 18:49
Проблема с созданием пользователя shtep PHP 0 19.12.2010 17:38
Проблема с созданием класса Arkuz Общие вопросы Delphi 10 18.04.2010 14:18
Проблема с созданием CButton st1q Общие вопросы C/C++ 5 14.09.2008 13:57


13:26.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru