24.01.2019, 06:43 [+3 UTC]
в нашей команде: 3 353 чел. | участники онлайн: 8 (рекорд: 20)

:: РЕГИСТРАЦИЯ

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.66 (22.01.2019)
JS-v.1.31 | CSS-v.3.35

Общие новости:
01.01.2019, 13:54

Форум:
22.01.2019, 18:16

Последний вопрос:
23.01.2019, 21:30
Всего: 148557

Последний ответ:
24.01.2019, 06:32
Всего: 257637

Последняя рассылка:
23.01.2019, 23:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
06.05.2016, 00:57 »
region41
Не смог найти в сети доступного объяснения на свой вопрос, Игорь Витальевич разложил все по полочкам. Большое спасибо! [вопрос № 189297, ответ № 273748]
28.06.2010, 18:28 »
Мироненко Николай Николаевич
Спасибо, разобрался smile [вопрос № 179331, ответ № 262310]
21.02.2010, 22:59 »
Бабич Илья Александрович
Спасибо большое,понял где ошибся когда сам делал [вопрос № 176834, ответ № 259644]

РАЗДЕЛ • Assembler

Создание программ на языке Assembler.

[администратор рассылки: Лысков Игорь Витальевич (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 664
Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 382
cain52
Статус: 3-й класс
Рейтинг: 267

Перейти к консультации №:
 

Консультация онлайн # 67287
Раздел: • Assembler
Автор вопроса: Whiteman
Отправлена: 16.12.2006, 20:26
Поступило ответов: 1

Здравствуйте ! Почему не работают прерывания в masm ? Все нормально компилится, но при запуске прога прога виснет.

Состояние: Консультация закрыта

Ответ # 131980 от Вiктор

Здравствуйте, Whiteman!
Похоже что вы задаёте неверные номера прерываний. Например, вместо 21h вы написали 21, это получается другой номер прерывания, соответственно действия у него другие. (При этом всё должно компилироваться, т.к. самому ассемблеру и линковщику всё равно какие номера вы указываете, их задача - точно перевести то, что вы написали, в машинный код). Проверьте, не ошиблись ли вы в десятичной или шестнадцатеричной записи номеров прерываний, уточните ещё раз по справочнику что делают те прерывания, которые вы используете.
(А вообще, на будущее, - в таких случаях принято приводить исходный текст программы.)


Консультировал: Вiктор
Дата отправки: 16.12.2006, 22:42

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 67287
неизвестный

# 1

= общий = | 17.12.2006, 00:15

Да дело в том , что ваще никакие прерывания не работают. .386 .model flat,stdcall include /masm32/include/kernel32.inc include /masm32/include/shell32.inc includelib /masm32/lib/kernel32.lib includelib /masm32/lib/shell32.lib .data cj db 0 .code _start: mov ah,01h int 21h xor ebx,ebx push ebx call ExitProcess end _start

Стас

# 2

= общий = | 17.12.2006, 00:21

У Вас смесь двух типов программ. Прерывания работают в DOS. ExitProcess - API виндов. Нельзя так смешивать.

неизвестный

# 3

= общий = | 17.12.2006, 13:41

Блин ! Неужели ничего нельзя сделать. У меня классная прога написана под Дос. Мне нужно только свернуть ее функцией ShowWindow и все .

Вiктор

# 4

= общий = | 17.12.2006, 18:43

сделайте ярлык для вашей дос-программы (*.pif), и в свойствах ярлыка укажите что исходное состояние программы - "свёрнутая в значок" (у меня на вин98 задаётся: ярлык, свойства->закладка "программа", пункт "окно", в выпадающем списке- "свёрнутое в значок". (Ещё можно сделать отдельную виндовс-программу, которая будет находить окно с вашей дос-программой и сворачивать её. Но это уже издевательство). Чем точнее вы опишете вопрос, тем больше вероятность что вы получите нужный ответ.

неизвестный

# 5

= общий = | 17.12.2006, 19:33

Не ! С ярлыком не пойдет. Мне нужно, чтобы именно исполняемая com программа сворачивалась при запуске. А точнее скрывалась.

Вiктор

# 6

= общий = | 17.12.2006, 20:17

com-программа считает что она работает в ДОСе, а в ДОСе нет команд "спрятать" и т.п., это виндовские приколы. В ДОСе программа имеет в распоряжении весь компьютер, ей нет за кого прятаться - работает только одна программа. Возможные решения - или ярлык, или переписать ваш код под виндовс (или отдельная виндовская программа, которая сворачивает окошко с досовской).

 

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

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.15724 сек.

© 2001-2019, Портал RFPRO.RU, Россия
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.66 от 22.01.2019
Версия JS: 1.31 | Версия CSS: 3.35