Size: a a a

2020 March 24

КП

Король Плутин in pro.asm
Пиздец
источник

VS

Vladimir Sh in pro.asm
В 1981 году про MBR  слыхом не слыхивали, есливчо
источник

КП

Король Плутин in pro.asm
BIOS (до MBR)
Править
• BIOS проводит начальную инициализацию оборудования (POST).
• BIOS определяет, с какого устройства производить дальнейшую загрузку: дискета, флеш-накопитель, жёсткий диск и т. д. (выбор устройства зависит от версии и от настроек BIOS)
[в данном описании рассматривается только случай загрузки с жёсткого диска].
• BIOS считывает один сектор (512 байт), то есть непосредственно MBR, который находится по адресу: «цилиндр 0, головка 0, сектор 1»[a], и помещает его в область памяти по физическому адресу 0x7C00.
• BIOS проверяет, что этот сектор оканчивается сигнатурой 0АА55h (байты 55h,0AAh).
[если это не так, то управление возвращается обратно в BIOS].
• BIOS передаёт управление по физическому адресу 0x7C00 (то есть сектору MBR), предварительно записав в регистр DL номер диска, с которого этот сектор считан. Для первого жёсткого диска это значение будет равно 80h (128 в десятичной системе), для дисковода A: равно 0. Кроме того, Plug-n-Play BIOS может записать в регистры ES:DI указатель на структуру «$PnP».
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮ in pro.asm
Король Плутин
BIOS (до MBR)
Править
• BIOS проводит начальную инициализацию оборудования (POST).
• BIOS определяет, с какого устройства производить дальнейшую загрузку: дискета, флеш-накопитель, жёсткий диск и т. д. (выбор устройства зависит от версии и от настроек BIOS)
[в данном описании рассматривается только случай загрузки с жёсткого диска].
• BIOS считывает один сектор (512 байт), то есть непосредственно MBR, который находится по адресу: «цилиндр 0, головка 0, сектор 1»[a], и помещает его в область памяти по физическому адресу 0x7C00.
• BIOS проверяет, что этот сектор оканчивается сигнатурой 0АА55h (байты 55h,0AAh).
[если это не так, то управление возвращается обратно в BIOS].
• BIOS передаёт управление по физическому адресу 0x7C00 (то есть сектору MBR), предварительно записав в регистр DL номер диска, с которого этот сектор считан. Для первого жёсткого диска это значение будет равно 80h (128 в десятичной системе), для дисковода A: равно 0. Кроме того, Plug-n-Play BIOS может записать в регистры ES:DI указатель на структуру «$PnP».
значит сначало читает, а потом проверяет на аа55
источник

КП

Король Плутин in pro.asm
Aiwan ╭∩╮ (òÓ,) ╭∩╮
значит сначало читает, а потом проверяет на аа55
Логично, вообще то.
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Король Плутин
BIOS (до MBR)
Править
• BIOS проводит начальную инициализацию оборудования (POST).
• BIOS определяет, с какого устройства производить дальнейшую загрузку: дискета, флеш-накопитель, жёсткий диск и т. д. (выбор устройства зависит от версии и от настроек BIOS)
[в данном описании рассматривается только случай загрузки с жёсткого диска].
• BIOS считывает один сектор (512 байт), то есть непосредственно MBR, который находится по адресу: «цилиндр 0, головка 0, сектор 1»[a], и помещает его в область памяти по физическому адресу 0x7C00.
• BIOS проверяет, что этот сектор оканчивается сигнатурой 0АА55h (байты 55h,0AAh).
[если это не так, то управление возвращается обратно в BIOS].
• BIOS передаёт управление по физическому адресу 0x7C00 (то есть сектору MBR), предварительно записав в регистр DL номер диска, с которого этот сектор считан. Для первого жёсткого диска это значение будет равно 80h (128 в десятичной системе), для дисковода A: равно 0. Кроме того, Plug-n-Play BIOS может записать в регистры ES:DI указатель на структуру «$PnP».
Чел говорят, что эта метка была не всегда. Вот и всё. И что некоторые биосы и сейчас кладут на эту метку. Вполне можно такое допустить.
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Но это скорее исключение.
источник

КП

Король Плутин in pro.asm
Евгений Красников (Jin X)
Чел говорят, что эта метка была не всегда. Вот и всё. И что некоторые биосы и сейчас кладут на эту метку. Вполне можно такое допустить.
Он утверждает, что эта метка принадлежит фс и не влияет на исполнение кода.
источник

s

s54816 in pro.asm
Вы лучше скажите, что BIOS-то эмулирует, когда бутсектор патчит — FDD или HDD?
источник

ЕК

Евгений Красников (Jin X) in pro.asm
s54816
Вы лучше скажите, что BIOS-то эмулирует, когда бутсектор патчит — FDD или HDD?
В некоторых биосах есть выбор: USB-HDD и USB-FDD. У меня нет, значит он умеет оба. По большому счёту, ему должно быть пофиг.
А почему работало на VMware, QEMU, Bochs? Потому что там это был Floppy диск или хард, а не USB. Надо попробовать USB, если там можно с неё грузиться.
источник

s

s54816 in pro.asm
Евгений Красников (Jin X)
В некоторых биосах есть выбор: USB-HDD и USB-FDD. У меня нет, значит он умеет оба. По большому счёту, ему должно быть пофиг.
А почему работало на VMware, QEMU, Bochs? Потому что там это был Floppy диск или хард, а не USB. Надо попробовать USB, если там можно с неё грузиться.
Тут вот википедия намекает, что это для твоего же блага: «…Many MBRs were coded to ignore the DL value and work with a hard-wired value (normally 80hex), anyway». Кто им мешает в int 13h эмулировать 0x80 так же, как они эмулируют 0x00 — не ясно.
источник

ЕК

Евгений Красников (Jin X) in pro.asm
s54816
Тут вот википедия намекает, что это для твоего же блага: «…Many MBRs were coded to ignore the DL value and work with a hard-wired value (normally 80hex), anyway». Кто им мешает в int 13h эмулировать 0x80 так же, как они эмулируют 0x00 — не ясно.
При загрузке как USB-HDD так и происходит, 80-й диск — это флешка. USB-FDD, скорее всего, будет 0-й диск.
источник
2020 March 25

d

d1vunit in pro.asm
   mov dx,page1
   mov [tablepage1+2],dx
   shl word [tablepage1+2],4
   
   mov eax,tablepage1
   
   mov cr3,eax
   
   mov eax,cr0
   bts eax,31
   mov cr0,eax
   
   mov word [0x000500],0x0f31
   mov word [0x000401],0x0f32
   mov word [0x000302],0x0f33
   
   jmp $
   
msg1 db '[*] MBR in Protected Mode',0x0a,'[*] System Halt'

page1 db 000000011b,0x00,0x00,0x70
page2 db 000000011b,0x00,0x40,0x1f
page3 db 000000011b,0x00,0x28,0x23
page4 db 000000011b,0x00,0x00,0xb8
page5 db 000000011b,0x00,0x00,0xb8
page6 db 000000011b,0x00,0x00,0xb8

tablepage1 db 0x03,0x00,0x00,0x00
источник

d

d1vunit in pro.asm
правильно ли ?
источник

d

d1vunit in pro.asm
я хочу вывести с разных страниц сообщение
источник

d

d1vunit in pro.asm
получается мне надо так думать При каждом обращении к памяти виртуальный адрес делится на три части, раз-
меры которых - 10-10-12 (слева направо).
источник

d

d1vunit in pro.asm
ну и получается я записываю его но его сложно записывать я еще не тестировал и не знаю правильно я сделал или нет
источник

d

d1vunit in pro.asm
но структуры я думаю правильно составил
источник

d

d1vunit in pro.asm
наверное надо использовать после mov cr0,eax jmp far с виртуальным адресом
источник

d

d1vunit in pro.asm
хотя не только jmp near far не надо
источник