Dreamer
|
Friday 08.04.2005 17:58
|
|
|
Зарегистрирован: Friday 20.02.2004 09:36
Местоположение: Mogilev, Belarus
Сообщений - 114
|
Не, на русскоязычном асме. Особо хорошо смотреться будет команда 'popa'
|
Наверх
|
|
rus-os
|
Saturday 09.04.2005 08:07
|
|
|
Зарегистрирован: Saturday 26.03.2005 09:41
Сообщений - 36
|
Язык копьютера - цифры . Компьютеру все равно что делать . Зачем цифры переводить в символику на латинице , чтобы потом ее руссифицировать ?
|
Наверх
|
|
Wanderer
|
Saturday 09.04.2005 21:20
|
|
|
Зарегистрирован: Monday 17.11.2003 16:13
Сообщений - 26
|
Хочешь бесплатный совет? Это завсегда. Садись и пиши. Убей год-два, перевороши кучу документации, узнай тонну всего о программировании и в самом конце пойми, что все, о чем ты думал на полном серьезе - полная херня. Только так. Пока грабли по собственному лбу не стукнут, все советы бесполезны.
Aut viam inveniam aut faciam.
|
Наверх
|
|
rus-os
|
Saturday 09.04.2005 22:11
|
|
|
Зарегистрирован: Saturday 26.03.2005 09:41
Сообщений - 36
|
Этим я и занимаюсь - ворошу литературу и побываю знания . Спасибо .
|
Наверх
|
|
rus-os
|
Monday 11.04.2005 17:04
|
|
|
Зарегистрирован: Saturday 26.03.2005 09:41
Сообщений - 36
|
В БИОС зашита программа старта компьютера . Эта программа запускактся после окончания ПОСТ . Суть этой программы :
1. из БИОС получить список загрузочных устройств;
2. обратиться к первому по списку загрузочному устройству;
3. последовательно считать 512 Байт из нулевого сектора загрузочного устройства и сделать копию нулевого сектора диска в памяти с нулевого адреса;
4. проверить 512-й байт на наличие в нем сигнатуры АА55;
5. если сигнатура есть, то копия программы в памяти запускается с нулевого адреса, если сигнатуры нет , то выдается сообщение о отсуствии загрузочной записи или ошибка чтения.
Таким образом запускается не программа нулевого сектора загрузочного устройства , а с копии этой программы в памяти компьютера . Верно ли мое предположение?
|
Наверх
|
|
Dreamer
|
Monday 11.04.2005 18:51
|
|
|
Зарегистрирован: Friday 20.02.2004 09:36
Местоположение: Mogilev, Belarus
Сообщений - 114
|
Не понимаю хода мысли. BIOS читает 512 байт с диска по адресу 0x7C00 и передает управление на этот код, если последние 2 байта загрузчика (тех 512 байт) имеют значение 0xAA55 (или 0x55AA - не помню). А в чем заключается задача?
|
Наверх
|
|
Dreamer
|
Monday 11.04.2005 18:55
|
|
|
Зарегистрирован: Friday 20.02.2004 09:36
Местоположение: Mogilev, Belarus
Сообщений - 114
|
Да, и еще. Мой самый умный совет, который я могу дать в данном случае: не делай "русскую ОС". Откажись ото всех своих идей. Сделай ОС наподобие Unix. Зачем? Просто, на мой взгляд, ты не знаешь вещей, чтобы сразу воплощать свои идеи в коде. Постепенно научишься. Кстати, ты думаешь каким образом распространять свою ОС: freeware, shareware, open source? Просто если ты уже сейчас думаешь брать за свое творение деньги - поверь мне, твоя ОС обречена на провал.
|
Наверх
|
|
rus-os
|
Tuesday 12.04.2005 10:30
|
|
|
Зарегистрирован: Saturday 26.03.2005 09:41
Сообщений - 36
|
Возникает вопрос . В загрузочной записи первым идет безусловный переход на
первый промежуточный адрес , который также есть в загрузочной записи . Если
запись скопирована со смещением адресов , не на 0х0000 а на 0х7С00 , то
безусловный переход будет в переходом в пустое место памяти .
Или сначала копируется загрузочный сектор в память с адреса 0х0000 , потом
управление передается ей , и она копирует себя на адрес 0х7С00 со смещением
адресов и передает управление этой копии , а копия уже загружает остальные
данные с дискеты . Может так ?
|
Наверх
|
|
Dreamer
|
Tuesday 12.04.2005 19:40
|
|
|
Зарегистрирован: Friday 20.02.2004 09:36
Местоположение: Mogilev, Belarus
Сообщений - 114
|
У-ф-ф... Что-то ты мудришь. BIOS загружает код по адресу 0x7C00. В начале загрузочного сектора ставишь директиву org 0x7C00 (для FASM'а. Для других - не знаю). Про промежуточные адреса я ничего не понял, но готов предположить, что все гораздо легче, чем ты себе представляешь.
|
Наверх
|
|
rus-os
|
Tuesday 12.04.2005 20:49
|
|
|
Зарегистрирован: Saturday 26.03.2005 09:41
Сообщений - 36
|
Есть предположение .
Если при загрузке на адрес 7С00 был явно указан этот адрес в БИОС и БИОС управление передает потом тоже явно на этот адрес , то сама загружаемая программа может делать переходы внутри себя используя только младшие байты адреса и таким образом работоспособность программы сохраняется . По скольку загрузочный сектор имеет 512 байт то в памяти он помещается в интервале 7С00 - 7DFF , причем сигнатура 55AA нахотится в последнем байте . Теперь нужно разобраться в том что делает программа загрузочного сектора . Очевидно что она что то копирует и инициализирует . Что она копирует и на какие адреса ?
|
Наверх
|
|
Модераторы: Roman I Khimov |
|
|