Добрый вечер!
Загрузил в память скомпилированную программу. Проверил все ли заголовки верные. Поместил загрузочный сегмент в 0x02000000. Пытаюсь сделать "скачок". Получаю ошибку страницы с адресом примерно 0x57f00000. Откуда он вообще взялся ума не приложу. location равен 0x02000000. Если указывать адрес тот, где ранее, так скажем, остановился ошибок уже не наблюдаю и переход успешен, ибо вызов системных вызовов проходит.
Код:
asm volatile( "mov $0x23, %%ax \n"
"mov %%ax, %%ds \n"
"mov %%ax, %%es \n"
"mov %%ax, %%fs \n"
"mov %%ax, %%gs \n"
"mov %%esp, %%eax \n"
"pushl $0x23 \n"
"pushl %%esp \n"
"pushf \n"
"pushl $0x1B \n"
"pushl %0 \n"
"iret \n"
: : "r"(location));
Заранее благодарю за помощь и советы!