Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2010, 21:34   #1
dmitradze
 
Регистрация: 06.12.2010
Сообщений: 8
Вопрос Вывод содержимого BIOS (в символьном и числовом виде)

Подскажите, пожалуйста, какими прерываниями можно "достать" содержимое BIOS для вывода на экран.
С резидентом разобрался, а вот с тем, что выводить и как добраться - не нашел.
Нужно по заданию написать резидент, который по нажатию клавиш будет выводить на экран "содержимое BIOS в числовом и символьном виде".

Сначала думал, что речь идет о биосовском прерывании 11h: устройства и проч.
Но имеется ввиду участок памяти, содержащий BIOS.
В числовом: байты, а в символьном - вывести символы из таблицы ASCII, соответствующие этим байтам.

Заранее очень благодарен за подсказки.
dmitradze вне форума Ответить с цитированием
Старый 07.12.2010, 01:50   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а зачем вам прерывания то?
БИОС же это часть памяти, просто обратитесь по нужному адресу и читайте(если что то адрес я не помню и под виндой такое не сработает)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.12.2010, 04:04   #3
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

Цитата:
Сообщение от dmitradze
Сначала думал, что речь идет о биосовском прерывании 11h: устройства и проч.
dmitradze не путай BIOS и CMOS
Mikl___ вне форума Ответить с цитированием
Старый 07.12.2010, 11:05   #4
dmitradze
 
Регистрация: 06.12.2010
Сообщений: 8
По умолчанию

Mikl___, да-да, теперь сообразил.

Пепел Феникса, мне как раз под ДОС и нужно написать .com программу. А где можно найти и посмотреть диапазон адресов, где все это добро расположено?
dmitradze вне форума Ответить с цитированием
Старый 07.12.2010, 11:20   #5
dmitradze
 
Регистрация: 06.12.2010
Сообщений: 8
По умолчанию

Нашел информацию в интернете, что, мол, от F0000h до FFFFFh. Справедливо? Как раз разность будет 65 535. Это не поместится на один экран в DOSе.
Нам, чтобы вывести символы - надо считывать по два байта, получается?
dmitradze вне форума Ответить с цитированием
Старый 07.12.2010, 11:36   #6
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

dmitradze
Мало того, в BIOS информация еще и запакована. F0000h до FFFFFh это пока Винду не загрузили, а потом она использует эти адреса под свои нужды и в режиме эмуляции там уже ничего не найдешь
Mikl___ вне форума Ответить с цитированием
Старый 07.12.2010, 11:51   #7
dmitradze
 
Регистрация: 06.12.2010
Сообщений: 8
По умолчанию

Это, получается, отдельно надо ДОС ставить?
Дебаггер в досбоксе выдает что-то, там даже похоже на дату БИОСА: 03/12/09 и ерунду по этим адресам.
Просто по заданию программа должна загрузиться в память и выводить содержимое по нажатию. Значит, по идее, все это уже после загрузки системы, надо доставать как-то.

Хотя не, выдает даже что-то похожее на SET BLASTER, версию ДОС-а и т.п.
Только там ну очень много сведений получится среди "мусора"

Последний раз редактировалось dmitradze; 07.12.2010 в 11:56.
dmitradze вне форума Ответить с цитированием
Старый 07.12.2010, 12:04   #8
dmitradze
 
Регистрация: 06.12.2010
Сообщений: 8
По умолчанию

Все, нашел!
В дебаггере если написать в f0000:0000 будет выдаваться информация БИОС-а. Версия, память, диски и все это добро. Надеюсь, это то, что надо.
Логично предположить, что на разных компьютерах по-разному. У меня все эти сведения находятся с f000:06C0 до f000:0ec0
dmitradze вне форума Ответить с цитированием
Старый 07.12.2010, 12:24   #9
Mikl___
Участник клуба
 
Регистрация: 11.01.2010
Сообщений: 1,162
По умолчанию

dmitradze
строка "SET BLASTER" вообще-то в AUTOEXEC.BAT, версию ДОС можно посмотреть в COMMAND.COM, а BIOS загружается до всяких COMMAND.COM и AUTOEXEC.BAT из ПЗУ на материнской плате, информация о дисках хранится в CMOS'e и тоже как-то к BIOS'y не относится. Какая-то у тебя каша в представлении о том, что находится в BIOS. Ищи в Интернете статьи Пинчакко об устройстве BIOS, да и книги этого автора есть в магазинах

Последний раз редактировалось Mikl___; 07.12.2010 в 12:27.
Mikl___ вне форума Ответить с цитированием
Старый 08.12.2010, 13:13   #10
dmitradze
 
Регистрация: 06.12.2010
Сообщений: 8
Вопрос

Добрый день.
Скажите еще, пожалуйста, как можно вывести на экран 16-ричное число, которое находится по конкретному адресу (например, f000:06c0), а затем перевести его в ASCII-код?
Как правильно по этому адресу обратиться?
dmitradze вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод содержимого BIOS (в символьном и числовом виде) dmitradze Помощь студентам 0 06.12.2010 15:54
вывод содержимого street-walker Помощь студентам 1 04.03.2010 21:03
Числа в символьном виде SL1CK Общие вопросы C/C++ 8 20.10.2009 17:30
Дано четырехзначное число, заданное в символьном виде, например, '1954'. Напечатать его текстом, например gred Помощь студентам 13 31.03.2008 22:24