|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Результаты опроса: Хотите ли вы читать эту книгу? | |||
Хочу | 148 | 78.31% | |
Не хочу | 29 | 15.34% | |
уже прочитал | 12 | 6.35% | |
Голосовавшие: 189. Вы ещё не голосовали в этом опросе |
|
|
Опции темы | Поиск в этой теме |
04.09.2013, 19:35 | #11 |
Пользователь
Регистрация: 09.08.2012
Сообщений: 95
|
Пытался скачать файлы к книге на вашем сайте,но почему то слетает соединение с сервером,посмотрите в чем там может быть дело?
Книга отличная ,особенно порадовала глава с написанием драйверов на ассемблере. |
20.01.2015, 13:39 | #12 |
Новичок
Джуниор
Регистрация: 20.01.2015
Сообщений: 1
|
Привет всем. Нужна ваша помощь. Посмотрите, пожалуйста, можно ли программным способом заменить кварц 4,096 MHz на 4,00 MHz
Файл находится тут: https://docs.google.com/document/d/1...2OeLOshvk/edit Спасибо заранее. |
18.02.2017, 10:23 | #13 |
Регистрация: 15.02.2014
Сообщений: 4
|
Изложенное в книге понятно. Объясните пож подробно как с флешки загружаться. Виртуальной машиной не хочу пользоваться, а с флешки нет загрузки, выдает сообщение boot сектор не найден.
|
18.02.2017, 12:17 | #14 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Sergey54
Это лучше обсудить в отдельной теме. Судя по сообщению БИОСа вы уже прошли с 0 по 4 пункт и застряли на 5. Но всё равно рекомендую перечитать. 0) Не все флешки годятся для загрузки с них. В первых секторах у таких флешек лежит служебная информация и они имеют свою логическую структуру. При этом изменить это нельзя так как аппаратно заблокировано и информация доступна только на чтение. С Tranced никогда проблем не было. 1) Способ загрузки UEFI/CSM - выбирается в биосе. CSM (Compatibility Support Module). CSM - это режим совместимости со старым BIOS когда загрузка идёт с сектора. Для обращения к API БИОСа используют интерфейсную команду int, к примеру (Int 13h) UEFI используются файлы с расширением *.efi формата PE-EFI. 2) Логическая структура флешь-диска. Есть два основных вида под мягкий-диск и под жесткий диск. Мягкий диск он же: флоппи, флопик, Floppy, НГМД. Жёсткий диск он же: HDD, Hard-Disk, НЖМД. Соответственно в меню-БИОС выбирается тип определения флешь-диска как USB FDD или USB HDD. Тип должен совпадать с логической структурой. Обычно все работают с USB-HDD. 3) При создании самого первого(считаем от 1) логического тома/раздела его размеры не могут привышать определённые значения. Самый первый раздел не может быть больше не может быть больше 7.8 ГБ. А для жёсткий не более 2 ТБайт. 4) Выбор загрузочного сектора. Для флешек менее 7٫8 Гб и более 7٫8 Гб должны использоваться разный код загрузочного сектора. Для более код должен быть написан с использованием EDD Int 13h AH=42h 5) При записи загрузочного сектора вы могли спутать MBR и Boot Sector(загрузочный сектора) и Boot Record (загрузочная запись). Надо поместить MBR в 0 сектор физического диска. Обычно путают и пишут не в физический диск, а в логический. Или путают с томом, разделом диска. 6) Забыли вставить или отсутствует магическая подпись db 55h, 0AAh Перепутан порядок константы или их место размещение. 6.1) 55h, 0AAh соответственно имеют смещения 510d, 511d (смещение считается от нуля) 7) Некоторые биосы требуют недокументированных кодов в 0 секторе диска. Пока что никто такую базу не создал. 7.2) Не стоит портить DiskSignature им тоже пользуются некоторые биусы. 7.3) Все служебные поля важны! С виртуозками проблем меньше они не такие привередливые. Вот ещё ряд типичных проблем/ошибок при написании загрузчика: http://ru.osdev.wikia.com/wiki/Почем...т_загрузчик%3F Поэтому лучше это пропустить и пользоваться Grub4DOS для загрузки ядра свой ОС.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 18.02.2017 в 12:22. |
18.02.2017, 21:53 | #15 |
Регистрация: 15.02.2014
Сообщений: 4
|
Спасибо Pavia за ответ. Напишу подробнее.
Брал программу - раздела 2 без описанных условий перекидывал на флешку и свободно компьютер запускался. По непонятным причинам в определенный момент это стало невозможным. Либо выдает сообщение No bootable device - insert boot disk and press any key и просит вставить загрузочный диск, либо сразу переходит на загрузку ОС. Устанавливал загрузчик объемом не более 512 байт в нулевом секторе с сигнатурой 55АА со смещением 510 511 ничего не помогло. Биос определяет флешку как HDD. |
19.02.2017, 13:27 | #16 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Вам надо восстановить MBR на вашей флешке.
В консоли с правами администратора выполнить bootsect.exe /mbr E: Где вместо E: - указать диск вашей флешки Затем сделать загрузочным диском-дос как описано здесь: http://www.pontin.ru/technical/instr...yu-fleshku-dos
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
19.02.2017, 15:45 | #17 |
Регистрация: 15.02.2014
Сообщений: 4
|
Выдает сообщение что bootsect можно воспользоваться из биос. This tool can only be run on systems booted using a PC/AT BIOS. This was booted using EFI or some other firmware type.
|
19.02.2017, 18:58 | #18 |
Регистрация: 15.02.2014
Сообщений: 4
|
Спасибо Pavia, все получилось.
|
12.03.2019, 15:17 | #19 |
Регистрация: 11.03.2019
Сообщений: 7
|
Здравствуйте, занимаюсь по этой книге. И к сожалению столкнулся с тем что примеры из книги не работают, к примеру на dosbox (на скрине) не работает part2/sample2.3, обычная трансляция адресов, но в freedos всё нормально , да Я понимаю что там запрещена запись в поля данных, перепроверял дескрипторы, всё нормально(хотя если на freedos выполнялось, то смысла проверять не было). в итоге проблема решилась уменьшением PAGE_DIR_BASE_ADDRESS и PAGE_TABLES_BASE_ADDRESS на 4 разряда.
Ну думаю ладно, разобрался. Затем перешёл к следующему part2/sample2.3.PAE трансляция в режиме PAE. тут столкнулся с той же ошибкой(но тем не менее делал как в предыдущем примере, не помогло), но уже по причине другой ошибка происходит: Код:
Так как это вопрос, то подскажите пожалуйста в чём причина? Я пока всё перечитывал в книге, уже запомнил всю структуру GDT, как виртуальный страничный адрес преобразуется в физический, уже сны снятся на эту тему, но так и не пойму в чём проблема. Я уже подозреваю, может это такой план Автора, что бы обучающиеся всё запомнили через такие муки. Предполагаю что проблема, для людей которые этим давно занимаются на поверхности, у Меня же, ввиду того что Я не сильно в этом разбираюсь, просто кончились весомые домыслы что Я делаю не так. Буду благодарен |
12.03.2019, 21:44 | #20 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Во времена доса 64 битного режима не было. Поэтому dosbox его и не эмулирует.
И вообще дос это 16 битное программирование. Берите нормальный эмулятор и вперёд. В порядке убывания качества VMware Player, VirtualBox, Bochs, Qemu.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 12.03.2019 в 21:47. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Руслан Аблязов - Программирование на ассемблере на платформе x86-64 (+ CD-ROM) | Alar | Свободное общение | 110 | 19.04.2017 01:49 |
Программирование на Ассемблере | Николай ПН | Помощь студентам | 3 | 23.03.2010 00:56 |
Программирование микроконтроллера 80С196КС на ассемблере | KOCT9IH | Фриланс | 3 | 07.11.2008 13:03 |