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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.07.2010, 16:21   #1
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию DOS на FASM. Программа быстро вылетает.

Всем доброго.
Прошерстил темы, которые смог найти о том как писать на FASM ДОС программы, но нигде не нашел ответа на свой вопрос. Вроде и не сложно, но не могу понять. Давно с Ассемблером не возился, потому и не понял собственно где косяк.
Итак, есть программа:
Код:
format MZ

    push   cs
    pop    ds
 mov eax,9
 mov dx,c
  int 21h
 mov eax,2h
  int 21h
 ret

;section '.data' data readable writable
c db "hello world$"
Простейшая и обычнейшая. при запуске консольное окошко не хочет ждать нажатия клавиши (и по-моему даже вообще ничего на экран не выводит, насколько я успел увидеть)

Вопрос: Что я делаю не так или что не учитываю?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.07.2010, 17:02   #2
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Нашел такой пример:
Код:
; fasm example of writing 16-bit COM program

        org     100h    ;код стартует со смещения 100h
        use16           ;используем 16-битный код


;Вывод текста = 9

 mov     ah,9;Помещаем в регистр ah значение Вывод текста
 mov     dx,hello;Помещаем в dx адресс нащего текста
 int     21h ;Вызываем 21 прерывание
 int     20h ;Вызываем 21 прерывание-Выходим из программы

hello db 'Hello world!',24h;текст  нашего  сообщения )
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 05.07.2010, 22:44   #3
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

Код:
format MZ

    push   cs
    pop    ds
    mov    ah, 9     ; вывод строки
    mov    dx, c
    int    21h

    mov    ah, 1h    ; ждать ввод с клавиатуры
    int    21h

    mov    ah, 4Ch   ; завершить программу
    mov    al, 0     ; код возврата
    int    21h

c db "hello world$"
пыщь
JTG вне форума Ответить с цитированием
Старый 06.07.2010, 08:13   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Тьфу ты блин... ну точно... Надо было вместо EAX, AH использовать
Вот что значит давно не работать с Ассемблером.
Всем спасибо
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.11.2016, 18:03   #5
седьмой
Форумчанин
 
Регистрация: 17.07.2012
Сообщений: 140
По умолчанию

Цитата:
Сообщение от JTG Посмотреть сообщение
Код:
format MZ

    push   cs
    pop    ds
    mov    ah, 9     ; вывод строки
    mov    dx, c
    int    21h

    mov    ah, 1h    ; ждать ввод с клавиатуры
    int    21h

    mov    ah, 4Ch   ; завершить программу
    mov    al, 0     ; код возврата
    int    21h

c db "hello world$"
как в fasm под досом откомпилировать этот код? Как пишется в консоли стока для компиляции? (или в DosBoxe)
седьмой вне форума Ответить с цитированием
Старый 01.11.2016, 18:09   #6
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

седьмой,
и снова, здравствуйте, а на сайберфоруме переведенной с английского инструкции по фасму нет (Мануал по flat assembler)? Я вроде бы в разделе Фасм целую библиотеку оставил, ну а читать мы конечно не будем принципиально... а нажать на кнопку Run не пробовал? или одновременно на F9+Ctrl ?
Цитата:
как в fasm под досом откомпилировать этот код? Как пишется в консоли стока для компиляции?
fasm имя_файла.asm

Последний раз редактировалось Mikl___; 01.11.2016 в 18:27.
Mikl___ вне форума Ответить с цитированием
Старый 01.11.2016, 18:36   #7
седьмой
Форумчанин
 
Регистрация: 17.07.2012
Сообщений: 140
По умолчанию

Цитата:
Сообщение от Mikl___ Посмотреть сообщение
седьмой,
и снова, здравствуйте, а на сайберфоруме переведенной с английского инструкции по фасму нет (Мануал по flat assembler)? Я вроде бы в разделе Фасм целую библиотеку оставил, ну а читать мы конечно не будем принципиально... а нажать на кнопку Run не пробовал? или одновременно на F9+Ctrl ?

fasm имя_файла.asm
Здравствуте Микки как Вы везде успеваете, читал я там, не нашел ничего такого, мне уже стыдно на том форуме спрашивать, сюда пришел так Вы и тут меня узнали
седьмой вне форума Ответить с цитированием
Старый 01.11.2016, 18:39   #8
седьмой
Форумчанин
 
Регистрация: 17.07.2012
Сообщений: 140
По умолчанию

Там же консоль, какая там кнопка Run? Или там оконный интерфес должен быть, может я не ту версию FASM поставил? Какую версию FASM нужно использовать в MS-DOS 6.22?
Да там правда что то написано про консольное программированиено под винду, попробую еще перечитать.

Последний раз редактировалось седьмой; 01.11.2016 в 19:42.
седьмой вне форума Ответить с цитированием
Старый 01.11.2016, 18:44   #9
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

седьмой,
сперва внимательно и вдумчиво несколько раз читай, потом задавай вопросы
у тебя два пути:
1) внимательно перечитай мое сообщение #6 и найдешь там ответ
2) создай программу в Windows, а проверяй ее в DOS или в DOSBox'e

Последний раз редактировалось Mikl___; 01.11.2016 в 18:47.
Mikl___ вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
во время сортировки программа вылетает MaRKer.nsk Общие вопросы C/C++ 3 10.04.2010 15:49
Процедура установки позиции с которой программа должна читать файл не работает. FASM. Crivel Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 13.09.2009 21:46
Программа на C вылетает по непонятным причинам Lavisa Общие вопросы C/C++ 17 01.08.2009 18:45
tasm>>fasm better Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 11 09.02.2009 19:34