| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm: Общие вопросы > Не могу выйти в DOS |
| Автор: Dreamuchiy 16.10.2011, 20:00 |
| Что бы я не делал все равно виснет система. Сократил вплоть до mov ax,4c00h и int21h соответственно. Ивсе равно виснет. У меня MS-DOS 6.22. Один с флехи грузится, другой на ноуте установлен и везде одинаковая фигня. Хотя иногда на станционаре корректный выход был. Может кто сталкивался с подобной хренью ? |
| Автор: iff 16.10.2011, 21:27 |
| А другие программы нормально запускаются? |
| Автор: 500mhz 17.10.2011, 17:15 |
| предлогаю сократить до org 0x100 RET и проверить |
| Автор: iff 17.10.2011, 19:00 |
| 500mhz, да, тогда выполнится прерывание INT 20h. Добавлено через 38 секунд Может быть автор вообще имеет в виду зависание при компиляции?.. у меня такое бывало. |
| Автор: Dreamuchiy 17.10.2011, 21:35 |
| Вот, я только включил комп и выше упомянутые мной команды работают на ура. Иакое впечатление как буд то система начинает перегружаться чем то. Ладно фиг сним. Скажите ребята, а если использовать как вы рекомендуете ORG и Ret, надо писать там типа MAIN PROC и END main ? после .CODE сразу пишу ORG 100h, далее собственно сама программа и в конце RET и END MAIN ? Правильно я понял ? Компиляция проходит успешно. Кстати как файл с расширением COM создается ? Пишу пока на MASM 6.1 |
| Автор: iff 18.10.2011, 15:03 |
Используйте EXE2BIN, еслив MASM. только внутренние команды? ещё раз: попробуйте запустить какую-либо программу, написанную под DOS. |
| Автор: Dreamuchiy 24.10.2011, 21:47 |
| Все само разрешилось когда я поставил в самое начало прграммы команды: mov ax,@data и mov ds,ax. До этого у меня сначала производилась запись байтов по нескольким адресам типа mov [byte],al, Не знаю как одно на другое влияет< но выход в дос стал безпроблемный ! Спасибо всем за помощь ! Я столько времени мучался. |
| Автор: 3abpbeginner 6.11.2011, 19:19 |
| браток может стоит правильно оформить твой екзешник|com-файл. в екзешнике надобно засунуть в стек ds(чуть не забыл);определить ds, es; засунуть 0000h в верхушку стека(в таком же порядке). в сom-файле надобно выполнять с смещения 100h(org 100h (я после определения сегмента пишу)). |
| Автор: iKhR 14.11.2011, 18:14 |
| попробуй mov ah,4h int 21h |
| Автор: iff 15.11.2011, 14:22 |
| iKhR, вы написали вызов функции вывода символа, находящегося в DL, га экран. Читайте тему! автор уже уяснил свою ошибку. |