laMer007
> Ну у него видимо была своя личная вм со своей системой команд, поэтому знать
> чужую архитектуру он не обязан. Ну и давайте будем благосклонны к тем кто
> никогда не сдаётся, следуя за своей мечтой.
Вот это. У меня все ВМ были очень простые, все однозадачные. Сейчас я с парой человек пишу чуть более сложную, с сегментами, правами доступа и другими плюхами. Как то так.
sb3d
> Интересно, а зачем это всё в 2014?
Велосипед. Хочется почуствовать себя каким нибудь Линусом, который пилит свое ядро для ос :) Ну и ВМ - просто по тому, что приятнее голого железа и проще портировать.
Bizunow
Сегменты - тупиковая ветка, делай сразу 32 битную машину, от сегментов толку никакого.
Финогенов К.Г. Самоучитель по системным функциям MS-DOS
http://rutracker.org/forum/viewtopic.php?t=3423898
Я когда-то по этой книжке учился :)
все очень просто:
адрес - 0xNNNNN = <сегмент> * 16 + <смещение> (адрес не больше метра)
сегмент 0xNNNN = <адрес> >> 4, при этом смещение = <адрес> & 0xF
или
смещение 0xNNNN = <адрес> & 0xFFFF, и соответственно сегмент 0xNNNN = (<адрес> & 0xF0000) >> 4
если сегмент = 0xFFFF то со смещением больше 0xF можно попасть в HIMEM.
код программы обычно укладывается в 64 килобайта поэтому достаточно выровнять сегмент по 0xNNNN0 и в стеке можно хранить только смещение - это для .COM, хотя переход в пределах сегмента и возврат и для .EXE тоже. Или сохраняется два 16 битных числа - сегмент и смещение, как не странно с абсолютно лишней информацией.
В программном случае прерывания, это аналог дальнего перехода - в стек пишется 32 бита.
Вот тебе обработчик клавиатурного прерывания
сегменты это такая параша что просто ваще
TarasB
Чуваааааак... ты адресацию для остальных режимов вообще видел?
TarasB
Запусти 32 бита на 8086 с 256Кб памяти :)
Dusk
там инструкций таких нет Ж)
foxes
> Чуваааааак... ты адресацию для остальных режимов вообще видел?
Да. Вот сейчас я могу всё адресовать одним числом int32.
Не, я знаю, что сегменты и тут есть на самом деле, но это уже скрыто нафиг от меня.
laMer007
> Ведь можно просто помочь, без попытки возвыситься в своих глазах.
для TB это не возможно, ведь он должен расти и развиваться - все выше и выше и вышеее. Это же целеустремленный человек знающей себе цену и всегда делающий правильные выводы.
TarasB
> но это уже скрыто нафиг от меня.
теперь представь что темы, в которых обсуждается, то что от тебя скрыто и то что тебе совсем не нужно, тоже скрыты от тебя и читать их, и тем более писать в них что то, нет ни какой необходимости.
TarasB
>Не, я знаю, что сегменты и тут есть на самом деле
А я откуда знаю зачем ему 16 бит надо.
foxes
ты чё, чувак?
TarasB
> ты чё, чувак?
я ни че, а ты че?
foxes
> Чуваааааак... ты адресацию для остальных режимов вообще видел?
Что не так с адресацией в "нереальном" режиме (ну кроме того, что функции BIOS и DOS не работают) ?
Тема в архиве.