Не знаю, как насчет при включении, но при передаче управления BIOS'ом на загруженный boot(MBR) - в dl - номер диска.
Да, да так и есть если загрузка идёт с винта
перед вызовом int 13h в ah=02( считывание),al=количество считываемых секторов dh=side , cx для сектора и цилиндра(младшие 6 байт для секора оставшиеся 2 байта уходят как старшие для цилиндра в ch), dl=80h(если загрузка с первого винта) 81h второго и т д. es:bx место куда считываем.
Но я не про это спрашивал
К примеру опишу несколько первых команд в биосе который я упоминал выше
итак первая команда по адресу F000:FFF0 в памяти, если посмотреть e030123s.rom с помощью hiew.exe это будет адрес 3FFF0 (если кому не ясно смотрите geocities.com/mamanzip/Articles/Award_Bios_RE/Award_Bios_RE_guide.html пункт 8.1.4)
итак имеем первую инструкцию
EACDFF00F0 jmp 0F000:0FFCD
смотрим далее тем же hiew адрес в файле 3FFCD имеем
E932C0 jmp 3C002 (это адресация в hiew) имеем
cli
cld
mov ax,cs
mov ss,ax
mov ebp,edx
nop
mov sp,0C012
jmp 3C715
(если не понятно куда передаётся управление читайте ссылку приведённую выше)
не знаю кого на сколько таких jmp'ов хватит но в конце концов обнаружиться инструкция по сравнению dx с каким либо числовым значением (не так чтобы это сильно мешало дальнейшему трассированию но хотелось бы знать какое значение dx в зависимости от модели процессора)
Пробегала через мои глаза какая-то англоязычная тех документация и в моей памяти смутно зацепилось что при инициализации ...... читайте пункт 8.1.4 вышеприведённой ссылки, ... бла бла бла и регистр edx получает значение модели ппроцессора(цитирую не дословно)
Просьба к тем кто кто знает как оно на самом деле объяснить что будет в регистре edx при включении питания.
Да, да так и есть если загрузка идёт с винта
перед вызовом int 13h в ah=02( считывание),al=количество считываемых секторов dh=side , cx для сектора и цилиндра(младшие 6 байт для секора оставшиеся 2 байта уходят как старшие для цилиндра в ch), dl=80h(если загрузка с первого винта) 81h второго и т д. es:bx место куда считываем.
Но я не про это спрашивал
К примеру опишу несколько первых команд в биосе который я упоминал выше
итак первая команда по адресу F000:FFF0 в памяти, если посмотреть e030123s.rom с помощью hiew.exe это будет адрес 3FFF0 (если кому не ясно смотрите geocities.com/mamanzip/Articles/Award_Bios_RE/Award_Bios_RE_guide.html пункт 8.1.4)
итак имеем первую инструкцию
EACDFF00F0 jmp 0F000:0FFCD
смотрим далее тем же hiew адрес в файле 3FFCD имеем
E932C0 jmp 3C002 (это адресация в hiew) имеем
cli
cld
mov ax,cs
mov ss,ax
mov ebp,edx
nop
mov sp,0C012
jmp 3C715
(если не понятно куда передаётся управление читайте ссылку приведённую выше)
не знаю кого на сколько таких jmp'ов хватит но в конце концов обнаружиться инструкция по сравнению dx с каким либо числовым значением (не так чтобы это сильно мешало дальнейшему трассированию но хотелось бы знать какое значение dx в зависимости от модели процессора)
Пробегала через мои глаза какая-то англоязычная тех документация и в моей памяти смутно зацепилось что при инициализации ...... читайте пункт 8.1.4 вышеприведённой ссылки, ... бла бла бла и регистр edx получает значение модели ппроцессора(цитирую не дословно)
Просьба к тем кто кто знает как оно на самом деле объяснить что будет в регистре edx при включении питания.
С уважением Виктор.