Консультация № 67287
16.12.2006, 20:26
0.00 руб.
0 7 1
Здравствуйте ! Почему не работают прерывания в masm ? Все нормально компилится, но при запуске прога прога виснет.

Обсуждение

Неизвестный
16.12.2006, 22:42
общий
это ответ
Здравствуйте, Whiteman!
Похоже что вы задаёте неверные номера прерываний. Например, вместо 21h вы написали 21, это получается другой номер прерывания, соответственно действия у него другие. (При этом всё должно компилироваться, т.к. самому ассемблеру и линковщику всё равно какие номера вы указываете, их задача - точно перевести то, что вы написали, в машинный код). Проверьте, не ошиблись ли вы в десятичной или шестнадцатеричной записи номеров прерываний, уточните ещё раз по справочнику что делают те прерывания, которые вы используете.
(А вообще, на будущее, - в таких случаях принято приводить исходный текст программы.)
Неизвестный
17.12.2006, 00:15
общий
Да дело в том , что ваще никакие прерывания не работают..386.model flat,stdcallinclude /masm32/include/kernel32.incinclude /masm32/include/shell32.incincludelib /masm32/lib/kernel32.libincludelib /masm32/lib/shell32.lib.datacj db 0.code_start:mov ah,01hint 21hxor ebx,ebxpush ebxcall ExitProcessend _start
Неизвестный
17.12.2006, 00:21
общий
У Вас смесь двух типов программ.Прерывания работают в DOS.ExitProcess - API виндов.Нельзя так смешивать.
Неизвестный
17.12.2006, 13:41
общий
Блин ! Неужели ничего нельзя сделать. У меня классная прога написана под Дос. Мне нужно только свернуть ее функцией ShowWindow и все .
Неизвестный
17.12.2006, 18:43
общий
сделайте ярлык для вашей дос-программы (*.pif), и в свойствах ярлыка укажите что исходное состояние программы - "свёрнутая в значок" (у меня на вин98 задаётся: ярлык, свойства->закладка "программа", пункт "окно", в выпадающем списке- "свёрнутое в значок".(Ещё можно сделать отдельную виндовс-программу, которая будет находить окно с вашей дос-программой и сворачивать её. Но это уже издевательство).Чем точнее вы опишете вопрос, тем больше вероятность что вы получите нужный ответ.
Неизвестный
17.12.2006, 19:33
общий
Не ! С ярлыком не пойдет. Мне нужно, чтобы именно исполняемая com программа сворачивалась при запуске. А точнее скрывалась.
Неизвестный
17.12.2006, 20:17
общий
com-программа считает что она работает в ДОСе, а в ДОСе нет команд "спрятать" и т.п., это виндовские приколы. В ДОСе программа имеет в распоряжении весь компьютер, ей нет за кого прятаться - работает только одна программа.Возможные решения - или ярлык, или переписать ваш код под виндовс (или отдельная виндовская программа, которая сворачивает окошко с досовской).
Форма ответа