Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ошибка при открытии файла 
:(
    Опции темы
wotker
Дата 24.4.2007, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 18.7.2006
Где: Ростов-на-Дону

Репутация: нет
Всего: 5



Разбираюсь в работе с файлами. На моем компе, при int 21h устанавливается флаг ошибки (хотя файл существует).
Код

CSEG segment
assume cs:CSEG, ds:CSEG, es:CSEG, ss:CSEG
org 100h

; === Начало программы ===
Begin:    mov ax,3D00h             ;Открываем файл для чтения
    mov dx,offset File_name  ;Имя открываемого файла в DX
    int 21h
    jc Error_file            ;Ошибка открытия файла? 

    mov Handle,ax            ;Сохраним номер открытого файла
    mov bx,ax
    mov ah,3Fh               ;Функция чтения файла
    mov cx,0FDE8h            ;Будем читать в память 0FDE8h = 65000 байт
    mov dx,offset Buffer     ;DX указывает на буфер для считывания
    int 21h

    mov ah,3Eh               ;Закрываем файл
    mov bx,Handle
    int 21h

    mov dx,offset Mess_ok
Out_prog:
    mov ah,9
    int 21h

    int 20h

Error_file:
    mov dx,offset Mess_error
    jmp Out_prog

Handle dw 0
Mess_ok db 'Файл загружен в память! Смотрите в отладчике!$'
Mess_error db 'Не удалось открыть (найти) файл '
File_name db 'c:\ppp2.sys',0,'!$'
Buffer equ $

; === Конец программы ===

CSEG ends
end Begin

 Помогите разобраться. А то я уже 2 дня не ел:( Спасибо!
--------------------
ICQ ::            347306684e-mail ::         wotker[at]rambler[dot]ru 
PM MAIL ICQ   Вверх
Akina
Дата 24.4.2007, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 1
Всего: 454



Цитата(wotker @  24.4.2007,  15:11 Найти цитируемый пост)
устанавливается флаг ошибки 

а код ошибки посмотреть религия не позволяет?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
wotker
Дата 24.4.2007, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 18.7.2006
Где: Ростов-на-Дону

Репутация: нет
Всего: 5



в ax - заносится 2h (т.е. не  может инициализировать поток). И что с этим делать?
--------------------
ICQ ::            347306684e-mail ::         wotker[at]rambler[dot]ru 
PM MAIL ICQ   Вверх
Akina
Дата 24.4.2007, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 1
Всего: 454



Цитата(wotker @  24.4.2007,  17:56 Найти цитируемый пост)
что с этим делать?

тут же запросить extended error code


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
anwe
Дата 24.4.2007, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: 8
Всего: 23



Цитата(wotker @  24.4.2007,  15:56 Найти цитируемый пост)
в ax - заносится 2h

Где это. Вроде все нормально, если файл-таки существует именно на С
PM MAIL   Вверх
ksnk
Дата 24.4.2007, 20:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: нет
Всего: 386



Цитата(wotker @  24.4.2007,  16:56 Найти цитируемый пост)
ax - заносится 2h (т.е. не  может инициализировать поток)
А код 2h - это случайно не "File not found"? Моя документация меня именно в этом уверяет...




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
anwe
Дата 24.4.2007, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: 8
Всего: 23



Цитата(ksnk @  24.4.2007,  19:43 Найти цитируемый пост)
А код 2h - это случайно не "File not found"? 

Именно
PM MAIL   Вверх
wotker
Дата 24.4.2007, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 18.7.2006
Где: Ростов-на-Дону

Репутация: нет
Всего: 5



Да. Походу файл не может найти... дело в том, что 
когда я пишу строчку типа              
Код

mov dx, offset File_name
mov ah, 9
int 21h 

выводится очень много ненужных символов. В конце них  находится нужная строка 

переписываю на 
Код

mov dx, offset File_name
add dx,100h
mov ah, 9
int 21h 

- строка выводится правильная,
а именно 'с:\ppp2.sys !'

может как-то криво указатель на данные устанавается?
Хотя  если вставлять mov dx, 100h в код - все равно ошибка выдается...
--------------------
ICQ ::            347306684e-mail ::         wotker[at]rambler[dot]ru 
PM MAIL ICQ   Вверх
Akina
Дата 24.4.2007, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 1
Всего: 454



Цитата(wotker @  24.4.2007,  23:17 Найти цитируемый пост)
переписываю на 

а компилишь-то небось в ЕХЕ??? тогда где установка значения DS? он у тебя на PSP указывает, отсюда и плюс 100h


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
wotker
Дата 25.4.2007, 00:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 157
Регистрация: 18.7.2006
Где: Ростов-на-Дону

Репутация: нет
Всего: 5



Цитата(Akina @ 24.4.2007,  23:10)
Цитата(wotker @  24.4.2007,  23:17 Найти цитируемый пост)
переписываю на 

а компилишь-то небось в ЕХЕ??? тогда где установка значения DS? он у тебя на PSP указывает, отсюда и плюс 100h

Да. Исправил. 
У меня сейчас такие ключи компиляции стоят:

tasm.exe /zi prog_03.asm
tlink.exe /t prog_03.obj  
+
td  prog_03.com

При загрузке пишется теперь Program has no symbol table. Ошибка открытия не прошла. 
--------------------
ICQ ::            347306684e-mail ::         wotker[at]rambler[dot]ru 
PM MAIL ICQ   Вверх
anwe
Дата 25.4.2007, 07:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: 8
Всего: 23



Для com-файла tlink /t /x prog_03.obj  
PM MAIL   Вверх
Akina
Дата 25.4.2007, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 1
Всего: 454



Цитата(wotker @  25.4.2007,  01:23 Найти цитируемый пост)
При загрузке пишется теперь Program has no symbol table

Это пишет TD, как я понимаю... все правильно. Если в ЕХЕ-файле может быть (или не быть) отладочная информация, то в СОМ-файле ее не может быть в принципе.
Однако тебе никто не мешает ткнуть TD в исходный текст - если желаешь отлаживаться с именами переменных, процедур и меток

Добавлено через 2 минуты и 2 секунды
Цитата(anwe @  25.4.2007,  08:41 Найти цитируемый пост)
Для com-файла tlink /t /x prog_03.obj   

Этот ключ всего лишь говорит, что не надо создавать МАР-файл... но он вроде никому не мешает...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
anwe
Дата 25.4.2007, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: 8
Всего: 23



Цитата(wotker @  24.4.2007,  23:23 Найти цитируемый пост)
При загрузке пишется теперь Program has no symbol table

Да, действительно, на работу в отладчике это не влияет. Нажми ОК и увидешь, что твоя программа загружена.
А символы - это типа символов для WinDbg, к которым надо прописать путь.
PM MAIL   Вверх
Akina
Дата 25.4.2007, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 1
Всего: 454



Цитата(anwe @  25.4.2007,  14:22 Найти цитируемый пост)
символы - это типа символов для WinDbg, к которым надо прописать путь.

В MZ-EXE отладочная информация пишется в конец файла, отдельным оверлейным сегментом. И никуда пути прописывать не надо.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
anwe
Дата 25.4.2007, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 748
Регистрация: 2.9.2006

Репутация: 8
Всего: 23



Что ж тогда такое меню File -> Symbol load?
Предлагает файлы с расширение .tds.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для начинающих"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для начинающих | Следующая тема »


 




[ Время генерации скрипта: 0.1192 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.