Этот фрагмент кода уже даже исполнялся несколько раз и все было нормально. Но незадолго до этого были в очередной раз исправлены значения в регистрах PAM. И сейчас сегмент 0xe8000 -указывает в DMI, т.е. на оригинальный код BIOS.
Если раньше код по адресу 0xe8000 исполнялся из RAM( распакованный original.tmp по адресам
0xE0000 - 0xFFFFF), то после изменения PAM по адресу 0xe8000(0xE000 : 0x8000) - содержимое
микросхемы BIOS(как Вы писали, там запакованный модуль). По моему изменение PAM
в данном случае недопустимо, тк приводит к бессмысленной передаче управления.
Довольно часто случается что диззасемблирование с неправильного адреса,
диззасемблирование данных как кода, диззасемблирование с неверным начальным
режимом описания сегмента(use16/use32) приводит к на первый взгдяд нормальным
командам. Но как правило рано или поздно попадаем на двоичные данные, которые
не могут быть диззасемблированы как команды или просто бессмысленым операциям.
Если раньше код по адресу 0xe8000 исполнялся из RAM( распакованный original.tmp по адресам
0xE0000 - 0xFFFFF), то после изменения PAM по адресу 0xe8000(0xE000 : 0x8000) - содержимое
микросхемы BIOS(как Вы писали, там запакованный модуль). По моему изменение PAM
в данном случае недопустимо, тк приводит к бессмысленной передаче управления.
Довольно часто случается что диззасемблирование с неправильного адреса,
диззасемблирование данных как кода, диззасемблирование с неверным начальным
режимом описания сегмента(use16/use32) приводит к на первый взгдяд нормальным
командам. Но как правило рано или поздно попадаем на двоичные данные, которые
не могут быть диззасемблированы как команды или просто бессмысленым операциям.