Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler
Регистрация

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 15 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Результаты опроса: Хотите ли вы читать эту книгу?
Хочу 145 78.80%
Не хочу 28 15.22%
уже прочитал 11 5.98%
Голосовавшие: 184. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы
Старый 04.09.2013, 19:35   #11
Gtnz8
Форумчанин
 
Аватар для Gtnz8
 
Регистрация: 09.08.2012
Адрес: Санкт-Петербург
Сообщений: 95
Репутация: 10
По умолчанию

Пытался скачать файлы к книге на вашем сайте,но почему то слетает соединение с сервером,посмотрите в чем там может быть дело?
Книга отличная ,особенно порадовала глава с написанием драйверов на ассемблере.
Gtnz8 вне форума   Ответить с цитированием
Старый 20.01.2015, 14:39   #12
faxriddinjon
Новичок
 
Регистрация: 20.01.2015
Сообщений: 1
Репутация: 10
По умолчанию

Привет всем. Нужна ваша помощь. Посмотрите, пожалуйста, можно ли программным способом заменить кварц 4,096 MHz на 4,00 MHz
Файл находится тут:
https://docs.google.com/document/d/1...2OeLOshvk/edit

Спасибо заранее.
faxriddinjon вне форума   Ответить с цитированием
Старый 18.02.2017, 11:23   #13
Sergey54
 
Регистрация: 15.02.2014
Сообщений: 4
Репутация: 10
По умолчанию

Изложенное в книге понятно. Объясните пож подробно как с флешки загружаться. Виртуальной машиной не хочу пользоваться, а с флешки нет загрузки, выдает сообщение boot сектор не найден.
Sergey54 вне форума   Ответить с цитированием
Старый 18.02.2017, 13:17   #14
Pavia
Лис
Профессионал
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 1,790
Репутация: 1956
По умолчанию

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 в 13:22.
Pavia на форуме   Ответить с цитированием
Старый 18.02.2017, 22:53   #15
Sergey54
 
Регистрация: 15.02.2014
Сообщений: 4
Репутация: 10
По умолчанию

Спасибо Pavia за ответ. Напишу подробнее.
Брал программу - раздела 2 без описанных условий перекидывал на флешку и свободно компьютер запускался. По непонятным причинам в определенный момент это стало невозможным. Либо выдает сообщение No bootable device - insert boot disk and press any key и просит вставить загрузочный диск, либо сразу переходит на загрузку ОС.
Устанавливал загрузчик объемом не более 512 байт в нулевом секторе с сигнатурой 55АА со смещением 510 511 ничего не помогло. Биос определяет флешку как HDD.
Sergey54 вне форума   Ответить с цитированием
Старый 19.02.2017, 14:27   #16
Pavia
Лис
Профессионал
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 1,790
Репутация: 1956
По умолчанию

Вам надо восстановить MBR на вашей флешке.
В консоли с правами администратора выполнить
bootsect.exe /mbr E:
Где вместо E: - указать диск вашей флешки
Затем сделать загрузочным диском-дос как описано здесь:
http://www.pontin.ru/technical/instr...yu-fleshku-dos
__________________
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia на форуме   Ответить с цитированием
Старый 19.02.2017, 16:45   #17
Sergey54
 
Регистрация: 15.02.2014
Сообщений: 4
Репутация: 10
По умолчанию

Выдает сообщение что 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.
Sergey54 вне форума   Ответить с цитированием
Старый 19.02.2017, 19:58   #18
Sergey54
 
Регистрация: 15.02.2014
Сообщений: 4
Репутация: 10
По умолчанию

Спасибо Pavia, все получилось.
Sergey54 вне форума   Ответить с цитированием
Старый 12.03.2019, 16:17   #19
PetroMetro
 
Регистрация: 11.03.2019
Сообщений: 7
Репутация: 10
По умолчанию

Здравствуйте, занимаюсь по этой книге. И к сожалению столкнулся с тем что примеры из книги не работают, к примеру на dosbox (на скрине) не работает part2/sample2.3, обычная трансляция адресов, но в freedos всё нормально , да Я понимаю что там запрещена запись в поля данных, перепроверял дескрипторы, всё нормально(хотя если на freedos выполнялось, то смысла проверять не было). в итоге проблема решилась уменьшением PAGE_DIR_BASE_ADDRESS и PAGE_TABLES_BASE_ADDRESS на 4 разряда.
Ну думаю ладно, разобрался.
Затем перешёл к следующему part2/sample2.3.PAE трансляция в режиме PAE. тут столкнулся с той же ошибкой(но тем не менее делал как в предыдущем примере, не помогло), но уже по причине другой ошибка происходит:
Код:

  9    xor eax, eax
 10    mov edi, PAGE_DIRECTORIES_POINTERS_TABLE_BASE_ADDRESS
 11    mov ecx, (TABLES_END - PAGE_DIRECTORIES_POINTERS_TABLE_BASE_ADDRESS)/4
 12    rep stosd

то есть при заполнении значением eax (0) всего пространства начиная с места указанного в edi, в селекторе es, ну думаю дай проверю pm.asm вдруг там ошибки в типе, дескриптора, - да нет, всё норма, думаю может не es:edi а ds:edi, и этот дескриптор по типу и другим параметрам подходит. Да и что бы наверняка и сегмент кода тоже позволяет производить туда запись.
Так как это вопрос, то подскажите пожалуйста в чём причина? Я пока всё перечитывал в книге, уже запомнил всю структуру GDT, как виртуальный страничный адрес преобразуется в физический, уже сны снятся на эту тему, но так и не пойму в чём проблема. Я уже подозреваю, может это такой план Автора, что бы обучающиеся всё запомнили через такие муки. Предполагаю что проблема, для людей которые этим давно занимаются на поверхности, у Меня же, ввиду того что Я не сильно в этом разбираюсь, просто кончились весомые домыслы что Я делаю не так. Буду благодарен
Изображения
 
PetroMetro вне форума   Ответить с цитированием
Старый 12.03.2019, 22:44   #20
Pavia
Лис
Профессионал
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 1,790
Репутация: 1956
По умолчанию

Во времена доса 64 битного режима не было. Поэтому dosbox его и не эмулирует.
И вообще дос это 16 битное программирование.

Берите нормальный эмулятор и вперёд.
В порядке убывания качества VMware Player, VirtualBox, Bochs, Qemu.
__________________
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .

Последний раз редактировалось Pavia; 12.03.2019 в 22:47.
Pavia на форуме   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Руслан Аблязов - Программирование на ассемблере на платформе x86-64 (+ CD-ROM) Alar Свободное общение 110 19.04.2017 02:49
Программирование на Ассемблере Николай ПН Помощь студентам 3 23.03.2010 01:56
Программирование микроконтроллера 80С196КС на ассемблере KOCT9IH Фриланс 3 07.11.2008 14:03


01:29.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru