В защищенном режиме нужно скопить инфу: Код (Text): mov esi, 0x1000 mov edi, 0x100000 mov ecx, 17*512/4 rep movsd ; <- ошибка почему???
DS ES = 0x10 Это сегменты с базой 0 и лимитом 4ГБ При запуске под VMWare выскакивает ошибочка и мы идем на перезагрузку
Два варианта: 1. Адреса буферов не валидные. Либо esi, либо edi указывают на область памяти которая не выделена (не используется). 2. При копировании, в определенный момент указатели либо esi, либо edi выходят за пределы буферов и начинают указывать на область памяти которая не выделена . В какой момент начинают выходить за пределы можно определить по значению ecx в отладчике, если он всплывает по исключениям. Общее назание ошибки Page Fault, без отладчика выводится синий экран, на нем может быть надпись типа 0x1000007E: SYSTEM_THREAD_EXCEPTION_NOT_HANDLED_M и т.д.
Я пишу свою ОС а данные инструкции перемещают ядро с адреса куда мы его считали(0x1000) по адресу его линковки (0x100000)
osrootd Нет, белая. Я к тому, что это чистое гадание, кто знает что у товарища за ядро, что за адреса и память..
Чувак, это код ПЕРЕМЕЩЕНИЯ ядра по слинкованному адресу. Побарабану какое ядро данная штуковина должна просто скопировать ядро из одного места в другое для того чтобы оно (ядро) могло корректно работать. Про адреса: Это Защищенный режим. Перемещение из одного места в другое, внутри сегмента. Что тебе еще сказать? Ты задай мне вопрос если не понятна только дай потом толковый ответ.
Stamerlan Тебе вопрос уже Грит задал. Что это за ядро скопипащенное, если ты даже не понимаешь что может вызвать причину исключения .D)
Чувак, а какая ошибка то? Смотри какое исключение возникает, оттуа и пляши. Page Fault или General Protection или что еще