|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.03.2011, 10:52 | #1 |
Регистрация: 17.02.2010
Сообщений: 3
|
Программа не открывает файл функцией 3dh.
Проблема в открытие файла функцией 3dh, 21h прерывания. Под отладчиком все ок. При запуске из командной строки выдает ошибку (файл не найден).
Компилятор TASM. Код:
Последний раз редактировалось Maxim5579; 17.03.2011 в 10:57. |
17.03.2011, 13:02 | #2 |
Участник клуба
Регистрация: 11.01.2010
Сообщений: 1,139
|
Maxim5579
Регистры DS:DX должны содержать адрес строки с именем файла, строка должна заканчиваться нулем и может содержать путь к файлу. |
17.03.2011, 15:00 | #3 |
Регистрация: 17.02.2010
Сообщений: 3
|
массив filename изначально имел вид как массив нулей
Код:
Код:
И самое интересное что под отладчиком никакой ошибки нет и все работает. |
18.03.2011, 00:27 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
может ds под отладчиком иницилизируется, а в в самой программе Вы забыли это сделать?
|
18.03.2011, 08:43 | #5 |
Форумчанин
Регистрация: 31.05.2009
Сообщений: 786
|
Если имя файла берется из командной строки, то в работе отладчика есть небольшое отличие при передаче командной строки. К примеру, командная строка:
prog.exe file.dat под отладчиком командная строка будет содержать "file.dat",13 А при реальном запуске: " file.dat",13 то есть будет иметь лишний пробел, вот мне кажется он то и мешает открытию файла. |
18.03.2011, 09:16 | #6 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Maxim5579, короче - рекомендую Вам: 1) убедится, что Вы не забыли проиницилизировать DS 2) вывести на экран имя открываемого файла (для отладки). 3) убедится, что вы в массиве пишете ноль после имени файла (можно вывести содержимое массива побайтно в HEX) 4) при использовании функции DOS возвращается ошибка (если CF=1 ) выведите содержимое регистра AX в случае ошибки - и посмотрите, что за ошибка возникает... надо уметь отлаживать программу без отладчика - с помощью вывод контрольных сообщений. пока шарился, нашёл книжку Рудольф Марек "АССЕМБЛЕР на примерах" вот здесь на 153 странице пример: Цитата:
p.s. выложите полный код программы, в конце концов. Иначе игры в телепатию могут долго продолжаться... Последний раз редактировалось Serge_Bliznykov; 18.03.2011 в 09:19. |
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
программа на файл | emin313 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 14.06.2010 01:46 |
Программа подобие Paint, не открывает рисунки | BaRSyk174 | Общие вопросы Delphi | 4 | 01.12.2009 17:01 |
Excel открывает файл при запуске | Д'якон | Microsoft Office Excel | 5 | 05.05.2009 21:36 |
Программа на текстовый файл | ZloyGenii2008 | Паскаль, Turbo Pascal, PascalABC.NET | 8 | 27.12.2008 14:20 |
Не открывает диск Д... | Filonenko | Свободное общение | 7 | 25.11.2007 14:44 |