26.05.2019, 01:33 [+3 UTC]
в нашей команде: 3 644 чел. | участники онлайн: 5 (рекорд: 21)

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

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

все разделы

правила

новости

участники

доска почёта

форум

блоги

поиск

статистика

наш журнал

наши встречи

наша галерея

отзывы о нас

поддержка

руководство

Версия системы:
7.75 (18.05.2019)
JS-v.1.33 | CSS-v.3.35

Общие новости:
28.04.2019, 09:13

Форум:
25.05.2019, 11:20

Последний вопрос:
26.05.2019, 00:52
Всего: 149693

Последний ответ:
25.05.2019, 14:47
Всего: 258521

Последняя рассылка:
25.05.2019, 19:45

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

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

Наша кнопка:

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

Отзывы о нас:
22.11.2009, 21:42 »
Jekaiseburga
Просто на отлично! Не ожидал, что так быстро ответ будет. [вопрос № 174438, ответ № 256814]
06.10.2010, 16:42 »
Мироненко Николай Николаевич
Спасибо Вам большое, учту все рекомендации, но сначала попробою создать "свежий" загрузочный диск. [вопрос № 180171, ответ № 263348]
13.11.2009, 17:40 »
popovaia
Спасибо! Просто спасли! [вопрос № 174180, ответ № 256452]

РАЗДЕЛ • Assembler

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

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

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

Коцюрбенко Алексей Владимирович
Статус: Модератор
Рейтинг: 620
Зенченко Константин Николаевич
Статус: Старший модератор
Рейтинг: 296
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 128

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

Консультация онлайн # 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.16662 сек.

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