Немного о себе: Программироую в делфи и с++ лет 5, владеню winapi.. На ассемблере писал только институтские лабораторки по программированию контроллеров Атмел. Т.е. с АСМом не знаком. Встала задача: 1. В SMART контроллере винтов хранится некая информация, количество ошибок, температура и тд. Задача: научиться считывать эти парамерты. Я научился это делать в winXP используя АПИ функции, но нужен более универсальный способ, независимо от загруженной ОСИ, пусть это хоть линукс будет. Посоветовали пару книг, среди них автор Гук (навазние забыл), говорят что с примерами на АСМе. Далее, интересует возможность программирования этих параметров, т.е. изменение значений. Все это хорошо. Ну запись данных на диск я найду. Еще одна задача, а точнее то что прояснит идею: Как записать мою программу на Ассемблере которая проверяет параметра СМАРТ и считанные с диска, в MBR, т.е. прога сама сидит в МБР, запускается, проверяет параметры, сравнивает их, если определенные условия - выводит сообщение пользователю на экран.. Далее передает управление загрузчику операционки. Идея такова. Посоветуйте пожалста куда копать, что изучать, какой кампялатор и тд. Спасибо. Слежу за ответами.
test555 "Независимо от загруженной оси" не получится: если есть сколько-нибудь вменяемая ось, она просто-напросто не пропустит программу к контроллеру. Поэтому утилиты для конкретных осей и должны использовать соответствующие функции API.
Будучи незнакомым с асмом, сделать это будет сложно. Думаю, для этого понадобится пример какого-нибудь загрузчика + документация по SMART. Последнее можно найти в стандарте (http://t13.org). Загрузчик придется делать самый примитивный, т.к. на все про-все отводится 446 байт (446 (код) + 64 (таблицы разделов) + 2 (сигнатура) == 512). В общем, надо изучить ассемблер, здесь или здесь можно почитать про MBR, здесь[/url ] про S.M.A.R.T здесь про прерывания. Если не влезешь в 446 байт, то можно воспользоваться тем, что перед началом первого раздела обычно есть пустое пространство размером 31.5 КБ. Правда, другая программа тоже может облюбовать это место, так что никаких гарантий. +немного места обычно есть после последнего раздела, но, опять же, не факт. Странно, что-то ссылки не удается разметить...
SII Читай внимательнее, хочу размещать в загрузочнике. Про АПИ я писал что уже научился делать, и что это меня не устраивает..
test555 А Вы сами себя внимательно почитайте. Т.е. ось должна быть УЖЕ загружена: не установлена, а, как Вы сами написали, именно загружена. Так что ни о каком "загрузочнике" здесь речь не идет. А то, что Вы там дальше про MBR написали, - это, как Вы сами оформили, "еще одна задача". Так что SII все правильно написал.