|
|
|
qwerty1122 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 20.10.2013 Репутация: нет Всего: нет |
привет!вот по книжке одной написал программку для обращения к PCI:
прогоняю ее через tasm и tlink и все хорошо в итоге создается exe-шник,запускаю его и вылазиет ошибка(на прикрепленой картинке)...подскажите как исправить это недоразумение? Присоединённый файл ( Кол-во скачиваний: 4 ) 2222.JPG 13,58 Kb |
|||
|
||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
Для начала, разумеется, начать обрабатывать ошыбки. Тогда будет заметно понятнее, в каком месте произошли неприятности.
|
|||
|
||||
qwerty1122 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 20.10.2013 Репутация: нет Всего: нет |
как я буду обрабатывать ошибки если прогоняя через tasm и tlink все хорошо от части послушал ваш совет,и не обращая внимания на книгу осторожно по шагам начал заново...вот что получилось
и в итоге,ошибка исчезла...но вот теперь доходит до JNE и в конец...у меня даж слов нет...подскажите мож гдето что то неправильно делаю с инициализацией PCI |
||||
|
|||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
Ошыбки периода исполнения (run-time) никак себя особенно не проявляют в tasm и tlink. Обрабатывать их надо, предусматривая соответствующие ветки программ, код в которых выполняется при ошыбках, и делает что-то разумное (например, сообщает пользователю о месте возникновения ошыбки). А не, как у вас, улетает в неиницыализированные области при любом неожыданном ответе системных вызовов. PS А, да, вижу, начали обрабатывать. Замечательно, Вам выдан вполне корректный ответ, что PCI BIOS не найден. Видимо, NTVDM (Вы его ведь под NTVDM запускаете? Ну, запускалка DOS-программ под win32?) не поддержывает функцыи PCI BIOS. Да и, действительно, что ему там поддержывать? Непосредственного доступа к устройствам из NTVDM никогда не было, по соображэниям безопасности и разделения ресурсов. Корректно эмулировался набор из древних таймеров с контроллером прерываний, клавиатуры, PC спикера, старого но всё-таки 16-битного саунд бластера и VGA-адаптэра с VESA-функцыями. Ни одного устройства, требуещего PCI не эмулировалось, потому и поддержка PCI BIOS ему низачем не нужна. |
|||
|
||||
qwerty1122 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 20.10.2013 Репутация: нет Всего: нет |
да запускаю в DOS программе под win32...раз такая тема что не смогу получить доступ к PCI т.к. не поддерживается то подскажите пожалуйста каким образом я смогу проверить работоспособность программы?(вчера весь вечер голову ломал мож что в коде не так а оказалось вот в чем дело)
Добавлено через 3 минуты и 34 секунды а вот если сделать загрузочную флешку на DOS то это сможет помочь? |
|||
|
||||
LeonidPr |
|
|||
Бывалый Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2012 Где: г. Чебоксары Репутация: 1 Всего: 1 |
Можете установить дос в какой-нибудь эмулятор типа VMWare и там поиграться.
--------------------
pkunzip.zip |
|||
|
||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
Да, вполне вариант. Тут, правда, есть сложности что ужэ появляются материнские платы, которые не поддержываются ни одним DOSом из-за своих глюков, но это всё-таки ещё пока редкость. Другой вариант -- взять эмулятор более нового писюка, например, qemu или, действительно, vmWare. Там, вполне вероятно, что будут эмулироваться какие-то PCI-устройства, и, в частности, скорее всего будет эмулироваться еhci-контроллер USB на PCI. Особенно если указать, что будет эмулироваться или пробрасываться какое-то USB-устройство. Такжэ в некоторые виртуальные машыны можно пробросить реальное PCI-устройство (хотя поддержка этого довольно кривая). |
|||
|
||||
qwerty1122 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 20.10.2013 Репутация: нет Всего: нет |
попробовал через DOS,есть прогресс,срабатывает...но вот теперь загвоздка при выводе значения регистра выводится какието невообразимые символы
вот сам код
|
|||
|
||||
tzirechnoy |
|
|||
Эксперт Профиль Группа: Завсегдатай Сообщений: 1173 Регистрация: 30.1.2009 Репутация: нет Всего: 16 |
Выводится символ с ASCII-кодом, соответствующим... В общем, херня выводится, через 2102 печатаются символы, числа печатаются заметно сложнее.
|
|||
|
||||
Правила форума "Asm для Windows/DOS" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm для Windows/Dos | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |