пример из программирование для дзенствующих ) -a :0100 MOV AH,00 ;устанавливаем графический режим :0102 MOV AL,04 :0104 INT 10 :0106 MOV CX,0064 ;координаты Первой Точки :0109 MOV DX,0064 :010C MOV AH,0C ;рисуем точку! :010E MOV AL,1B :0110 INT 10 :0112 MOV AH,00 ;ждем нажатия на клавишу :0114 INT 16 :0116 CMP AH,4B ;а не нажат ли у нас Left? :0119 JE 012A ;если да - то "прыг"! ;если нет - то следующая строчка :011B CMP AH,4D ;а не нажат ли у нас Right? :011E JE 012D :0120 CMP AH,48 ;а не нажат ли у нас Up? :0123 JE 0130 :0125 CMP AH,50 ;а не нажат ли у нас Down? :0128 JE 0133 :012A DEC CX ;задаем новые координаты, в зависимости :012B JMP 010C ;от нажатой клавиши - и скок в начало! :012D INC CX :012E JMP 010C :0130 DEC DX :0131 JMP 010C :0133 INC DX :0134 JMP 010C так вот на одних машинах все работает а на другой почему то нет открывается темное окошко и программа просто завершается ((( у меня на работе как раз такая машина что делать ? что бы было понятнее мать GIGABYTE GA-m61sme-s2l причем я переустановил винду заново винда ХР сервис пак 3 правда до этого тоже не работало ... все равно не запускается в чем проблема ? кто нибудь знает ?
Дело скорее всего в ntvdm, в некоторых версиях винды он вылетает при вызове прерывания int 10h. У меня работало только на XP SP1.
спасибо ) а что теперь делать ? впрочем не запускаются не только это еще и просто скомпилированные на асме тоже ....
Ну видимо не юзать функции использующие видеосервис BIOS, а попробовать писать в видеопамять напрямую или можно попробовать использовать виртуальную машину с DOS. разницы нет никакой, что скомпилируешь в ручную в debugere, что за тебя это сделает ASSEMBLER, машинный код будет одинаковый.
Ты ее вызываешь из Винды или из командной строки? Если из Винды, то вызови cmd.exe , вызови оттуда и посмотри почему она завершается Может там что-то полезное выдается ? Если ничего не выдается, то вызови через debug и протрассируй... Чудес не бывает.
1) DosBox 2) VirtualBox/VMWare/etc + DOS первый вариант будет пожалуй намного удобнее - интеграция с ФС Windows, более быстрый запуск. но DosBox заточен именно для DOS, если хотите другую ОС (или какую-то экзотическую версию DOS), то пригоден только второй вариант. Вообще эмуляция DOS в Windows последних версий (включая XP) не полная. Это вам не Win95, который являлся фактически надстройкой на DOS. В WinXP не эмулируются (либо эмулируются очень ограниченно) многие аппаратные компоненты (включая работу int 0x10).