Size: a a a

2020 December 23

uユ

und ユビキタス in pro.osdev
Berkus Decker
в CS нельзя писать, а ты его в дата и стек засовываешь
бросает при записи в стековый сегмент
источник

BD

Berkus Decker in pro.osdev
und ユビキタス
Переслано от und ユビキタス
setup_early_gdt:
   lgdtl early_gdt_ptr
   movw $EARLY_CS, %ax
   movw %ax, %ds
   movw %ax, %es
   movw %ax, %fs
   movw %ax, %gs
   movw %ax, %ss // this causes #GP somehow
   jmpl $EARLY_CS, $1f
1:  ret

почему
покажи что в gdt лежит
источник

uユ

und ユビキタス in pro.osdev
вот эти трое
источник

BD

Berkus Decker in pro.osdev
und ユビキタス
вот эти трое
расшифруй по полям плс
источник

uユ

und ユビキタス in pro.osdev
Berkus Decker
расшифруй по полям плс
грубо говоря код и данные для кольца 0, с этими ребятами на самом деле ничего не должно быть потому что в старом коде это работало, а это просто копипаста старого кода
источник

BD

Berkus Decker in pro.osdev
у тебя стек должен быть DS да и все остальные дата сегменты тоже, он не просто так с другими атрибутами
источник

BD

Berkus Decker in pro.osdev
еще раз в CS нельзя писать обычно - расшифруй атрибуты которые у тебя в каждом дескрипторе записаны
источник

BD

Berkus Decker in pro.osdev
сам поймешь
источник

uユ

und ユビキタス in pro.osdev
Berkus Decker
сам поймешь
мне было достаточно селектор на дату поменять
источник

uユ

und ユビキタス in pro.osdev
а ну это я слепой, я раньше также DS писал)
источник

uユ

und ユビキタス in pro.osdev
спасибо за ответ :)
источник

BD

Berkus Decker in pro.osdev
und ユビキタス
а ну это я слепой, я раньше также DS писал)
ну я тебе про это и говорю
источник

BD

Berkus Decker in pro.osdev
und ユビキタス
вот эти трое
вот это говно надо превратить в символьные константы и будет сразу видно что почём
источник

uユ

und ユビキタス in pro.osdev
Berkus Decker
ну я тебе про это и говорю
ну мне надо не писать с текста а копипастить чтобы такого не было :D
источник

uユ

und ユビキタス in pro.osdev
Berkus Decker
вот это говно надо превратить в символьные константы и будет сразу видно что почём
разбить на значения всмысле?
источник

BD

Berkus Decker in pro.osdev
und ユビキタス
спасибо за ответ :)
здесь ты еще сначала сбрасываешь CS в новый дескриптор а потом уже делаешь все остальное, так правильные по идее пушо старый пайплайн не гарантирует что ты посреди декодинга инструкции не улетишь в DF
источник

uユ

und ユビキタス in pro.osdev
не в константах дело было а в том что я не EARLY_DS а EARLY_CS пытался писать в сегменты
источник

BD

Berkus Decker in pro.osdev
und ユビキタス
не в константах дело было а в том что я не EARLY_DS а EARLY_CS пытался писать в сегменты
я вижу. но ты сделал это намеренно или случайно, вот в чем вопрос
источник

BD

Berkus Decker in pro.osdev
und ユビキタス
не в константах дело было а в том что я не EARLY_DS а EARLY_CS пытался писать в сегменты
про константы потом поблагодаришь, когда будешь этот код через два года перечитывать
источник

uユ

und ユビキタス in pro.osdev
Berkus Decker
я вижу. но ты сделал это намеренно или случайно, вот в чем вопрос
скорее всего случайно потому что я пытаюсь не копипастить старый код
источник