Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler, MASM, TASM
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.81/32: Рейтинг темы: голосов - 32, средняя оценка - 4.81
D@rkD@iver
112 / 112 / 13
Регистрация: 01.10.2008
Сообщений: 876
1

Программа сразу закрывается

02.07.2009, 12:05. Просмотров 5910. Ответов 21
Метки нет (Все метки)

начинаю изучать ассемблер (Borland TASM)
из книжки взял исходник Hellow World
откомпилировал, но когда запустил exe-шник он открылся и сразу же закрылся (мнгновенно)
вот код
Assembler
1
2
3
4
5
6
7
8
9
10
.model tiny
.code
org 100h
start:
    lea dx, msg
    mov ah, 9
    int 21h 
    ret
msg     db 'Hello world!$'
end start
я думаю в ДОСе проблема?
подскажети кто знает
заранее спасибо
0
Вложения
Тип файла: txt First.txt (551 байт, 31 просмотров)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2009, 12:05
Ответы с готовыми решениями:

Приложение сразу закрывается: Warning: No Stack
Доброго времени суток, форумчане - коллеги. Столкнулся с проблемой, Warning: No Stack - в...

Задача закрывается сразу после старта
Очень прошу помочь разобраться с задачей. Требуется нарисовать прямоугольник и сделать, чтобы он...

Перевод курсора, при запуске exe-файла окно сразу закрывается
Добрый день. Есть код программы которая (по идее) должна, при нажатии в правом нижнем углу окна,...

Программа сразу закрывается
Программа сразу закрывается, что делать? .model tiny .code ORG 100h start: MOV AH,2 MOV DL,41h...

OllyDbg при попытке открыть прогу сразу закрывается
Пытаюсь открыть прогу. Все время при попыкке хотя бы открыть ее в Ольке- трижды вылазит окно с...

21
Vourhey
Почетный модератор
6748 / 2434 / 221
Регистрация: 29.07.2006
Сообщений: 13,056
02.07.2009, 12:07 2
тут тем подобных - тьма! Юзай поиск. Закрывается, потому что задержки никакой не стоит. Запусти свою прогу из cmd увидишь свой hello world.
0
D@rkD@iver
112 / 112 / 13
Регистрация: 01.10.2008
Сообщений: 876
02.07.2009, 12:25  [ТС] 3
Vourhey, что значит из cmd?
0
Vourhey
Почетный модератор
6748 / 2434 / 221
Регистрация: 29.07.2006
Сообщений: 13,056
02.07.2009, 12:26 4
командная строка
0
02.07.2009, 12:26
D@rkD@iver
112 / 112 / 13
Регистрация: 01.10.2008
Сообщений: 876
02.07.2009, 12:28  [ТС] 5
Vourhey, из нее и запускал
а как поставить задержку?
0
Vourhey
Почетный модератор
6748 / 2434 / 221
Регистрация: 29.07.2006
Сообщений: 13,056
02.07.2009, 12:35 6
ты запускал вручную вводя имя проги в командной строке? По-моему, ты гонишь.

Добавлено через 1 минуту 22 секунды
Vourhey, из нее и запускал
если ты из нее запускал то, что тогда у тебя закрывается?
0
D@rkD@iver
112 / 112 / 13
Регистрация: 01.10.2008
Сообщений: 876
02.07.2009, 12:38  [ТС] 7
да

Добавлено через 52 секунды
Vourhey, не реагирует

Добавлено через 2 минуты 9 секунд
он всякую чепуху пишет
сначала просто всякие символы а потом
ние для бзового порта вв
0
Nazz
WEB-developer
897 / 728 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
02.07.2009, 12:39 8
у мну тоже была такая проблема(((
ты как свою прогу компилируеш???
0
Vourhey
Почетный модератор
6748 / 2434 / 221
Регистрация: 29.07.2006
Сообщений: 13,056
02.07.2009, 12:40 9
чтобы сделать задержку можно, например, вставить вот такой код перед завершением:
Assembler
1
2
mov ah,01h      
int 21h
хотя, как я понимаю трабла у тебя в другом
0
D@rkD@iver
112 / 112 / 13
Регистрация: 01.10.2008
Сообщений: 876
02.07.2009, 12:42  [ТС] 10
Nazz, TASM, через командную строку

Добавлено через 31 секунду
Vourhey, а надо убрать ret?
0
Vourhey
Почетный модератор
6748 / 2434 / 221
Регистрация: 29.07.2006
Сообщений: 13,056
02.07.2009, 12:42 11
а твое msg разве не нужно в секцию .data засунуть?
0
Nazz
WEB-developer
897 / 728 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
02.07.2009, 12:43 12
что то код твоей первой програмы очень заплутан

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
    model small
    .data
    tm  db 255,255,255 dup("$")
    testm   db "Entered string: $"
    
    .code
    main    proc
        mov ax,@data
        mov ds,ax
        mov dx,offset tm
        mov ah,0ah
        int 21h
        mov dx,offset testm
        mov ah,09h
        int 21h
        mov dx,offset tm
        add dx,2h
        mov ah,09h
        int 21h
        mov ax,4c00h
        int 21h
    
    main endp
    end main
    code ends
Запусти етот простой код))
0
D@rkD@iver
112 / 112 / 13
Регистрация: 01.10.2008
Сообщений: 876
02.07.2009, 12:56  [ТС] 13
а еще после выполнения программы выдает ошибку мол
процессор обнаружил невыполнимую инструкцию

Добавлено через 4 минуты 38 секунд
Nazz, чё-то я не понял что она делает

я запустил, она просто выводит на экран что я написал
0
Vourhey
Почетный модератор
6748 / 2434 / 221
Регистрация: 29.07.2006
Сообщений: 13,056
02.07.2009, 12:57 14
лучше бы в вики пример для тасм посмотрел:
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
.MODEL TINY
CODE SEGMENT
ASSUME CS:CODE, DS:CODE
ORG 100h
START:
        mov ah,9
        mov dx,OFFSET Msg
        int 21h
        int 20h
        Msg DB 'Hello World',13,10,'$'
CODE ENDS
END START
тут явно указывается. что данные расположены в сегменте кода.

Добавлено через 18 секунд
D@rkD@iver, а тебе че надо, чтобы она выводила?
0
D@rkD@iver
112 / 112 / 13
Регистрация: 01.10.2008
Сообщений: 876
02.07.2009, 13:00  [ТС] 15
просто hello world!

Добавлено через 43 секунды
Vourhey, а в этом коде разве компелируется не COM файл?
мне нужен exe
0
Nazz
WEB-developer
897 / 728 / 80
Регистрация: 12.03.2009
Сообщений: 2,804
Записей в блоге: 2
02.07.2009, 13:02 16
D@rkD@iver, ты же начинае изучать ТАСМ, во тебе явный пример, как выполняется вывод на екран и ввод с клавиатуры.....

P.S.так ты же говорил, что у тя не запускается(((( вот и я те дал пример, который работает)))
0
Vourhey
Почетный модератор
6748 / 2434 / 221
Регистрация: 29.07.2006
Сообщений: 13,056
02.07.2009, 13:02 17
D@rkD@iver, какая те фиг разница. Ты только учишься.
0
D@rkD@iver
112 / 112 / 13
Регистрация: 01.10.2008
Сообщений: 876
02.07.2009, 13:08  [ТС] 18
Nazz, дело в том что когда запускаю exe-шник из виндуса он строку считывает, при нажатии Enter прога закрывается
а при запуске из командной строки прога в конце пишет Entered String: ...
почему так?
0
Vourhey
Почетный модератор
6748 / 2434 / 221
Регистрация: 29.07.2006
Сообщений: 13,056
02.07.2009, 13:11 19
Блин, прога закрывается потому что задержки не стоит! Че до тебя как туго доходит. Прога те также пишет Entered String: ... в любом случае. Но не "из виндуса" это называется,а из проводника. Из проводника тебе пишется та же строчка и окно закрывается. С какого фига оно не должно закрываться? там же ничгео нет? Чего ему ждать? в коде вывод строки. Все. Строку вывел и закончил работу. Все там выводится. Я тебе, блин, уже второй раз про задержку пишу. Я тебе даже код привел, который ее поставит...
0
D@rkD@iver
112 / 112 / 13
Регистрация: 01.10.2008
Сообщений: 876
02.07.2009, 13:31  [ТС] 20
Nazz,

как тебе понравится такой код
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
model small
.data 
    mesg     db "Hello World! $"
.code
main proc
    mov ax, @data
    mov ds, ax
    mov dx, offset mesg
    mov ah, 9h
    int 21
    
    mov ah, 1h
    int 21h
 
        mov ax,4c00h
        int 21h
    
 
main endp
end main
code end
есть ли в нм ошибки?
0
02.07.2009, 13:31
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2009, 13:31

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

Программа сразу закрывается
После того как открыл программу который создал в паскаль авс через fpc (exe) То после вода всех...

Почему программа сразу закрывается ?
#include <iostream> using namespace std; int main (void) { int age; cout << "Enter you...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.