не запускается com программа на некоторых компах

Тема в разделе "WASM.BEGINNERS", создана пользователем Pauck, 3 авг 2011.

  1. Pauck

    Pauck New Member

    Публикаций:
    0
    Регистрация:
    30 апр 2008
    Сообщения:
    2
    пример из программирование для дзенствующих )

    -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
    правда до этого тоже не работало ...
    все равно не запускается
    в чем проблема ? кто нибудь знает ?
     
  2. pashe4ka13

    pashe4ka13 New Member

    Публикаций:
    0
    Регистрация:
    4 окт 2010
    Сообщения:
    263
    Дело скорее всего в ntvdm, в некоторых версиях винды он вылетает при вызове прерывания int 10h. У меня работало только на XP SP1.
     
  3. Pauck

    Pauck New Member

    Публикаций:
    0
    Регистрация:
    30 апр 2008
    Сообщения:
    2
    спасибо )
    а что теперь делать ?
    впрочем не запускаются не только это еще и просто скомпилированные на асме тоже ....
     
  4. Rockphorr

    Rockphorr Well-Known Member

    Публикаций:
    0
    Регистрация:
    9 июн 2004
    Сообщения:
    2.622
    Адрес:
    Russia
    поставь досбокс
     
  5. pashe4ka13

    pashe4ka13 New Member

    Публикаций:
    0
    Регистрация:
    4 окт 2010
    Сообщения:
    263
    Ну видимо не юзать функции использующие видеосервис BIOS, а попробовать писать в видеопамять напрямую или можно попробовать использовать виртуальную машину с DOS.

    разницы нет никакой, что скомпилируешь в ручную в debugere, что за тебя это сделает ASSEMBLER, машинный код будет одинаковый.
     
  6. Igor1024

    Igor1024 Васил Троянов Боянов (Azis)

    Публикаций:
    0
    Регистрация:
    15 окт 2010
    Сообщения:
    345
    Адрес:
    Sliven, Bulgaria
    Ставьте DOS...
     
  7. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Ты ее вызываешь из Винды или из командной строки? Если из Винды, то вызови cmd.exe , вызови оттуда и посмотри почему она завершается :) Может там что-то полезное выдается ?
    Если ничего не выдается, то вызови через debug и протрассируй... Чудес не бывает.
     
  8. drmad

    drmad New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    332
    Адрес:
    Russia
    Тогда уж не CMD, а COMMAND.COM.
     
  9. KIV

    KIV Member

    Публикаций:
    0
    Регистрация:
    16 июл 2009
    Сообщения:
    231
    1) DosBox
    2) VirtualBox/VMWare/etc + DOS
    первый вариант будет пожалуй намного удобнее - интеграция с ФС Windows, более быстрый запуск. но DosBox заточен именно для DOS, если хотите другую ОС (или какую-то экзотическую версию DOS), то пригоден только второй вариант.
    Вообще эмуляция DOS в Windows последних версий (включая XP) не полная. Это вам не Win95, который являлся фактически надстройкой на DOS. В WinXP не эмулируются (либо эмулируются очень ограниченно) многие аппаратные компоненты (включая работу int 0x10).