Почему BIOS читает в загрузочной записи раздела в 0000:7c00? Что является особенным о том адресе? что ':' выполнение в ссылке на адрес?
":" - это удержание из сегментированных дней памяти, когда ПК работали в реальном режиме и могли одновременно делать только 64К. Номер слева от ":" - Ваш сегмент, номер справа - Ваш адрес.
Команда windows debug принимает эту нотацию, если вы хотите самостоятельно покопаться в памяти:
C:\Users\Seth> debug
-d0000:7c00
0000:7C00 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:7C10 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:7C20 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:7C30 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:7C40 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:7C50 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:7C60 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0000:7C70 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
В отношении этого конкретного адреса, это просто адрес, который был выбран для загрузки MBR, Смотрите: http://www.ata-atapi.com/hiwmbr.html
"Если MBR найден, то он считывается в память по адресу 0000:7c00, а INT 19 переходит в память по адресу 0000:7c00"
Почему 7C00? На это, наверное, лучше всего ответит BIOS-программист/конструктор аппаратного обеспечения для исходного/оригинального IBM PC BIOS.
Если вы найдете копию Технического справочника по персональным компьютерам IBM , то она может содержать некоторые подсказки.
Простой ответ заключается в том, что 7C00h — это 1 КБ (512 байт для загрузочного сектора плюс дополнительные 512 байт для возможного использования загрузочного сектора) из нижней части исходной установленной памяти 32 КБ.
Счастливый ответ заключается в том, что org 7C00h
стал синонимом загрузочного сектора - программирования загрузчика.