OSDev
http://osdev.ru/

"H2O"-моя опеационная система - основная идея
http://osdev.ru/viewtopic.php?f=4&t=488
Страница 2 из 3

Автор:  iz56 [ 20 июл 2012, 13:29 ]
Заголовок сообщения:  Re: "H2O"-моя операционная система - основная идея

Проблема длинных имён или путей - к примеру имя корневой папки + имена последующих и на каком-то этапе упираемся в ограничение доса на общую длину пути имени файла - конкретно не помню число - такое было в других моих изысканиях. А ОС ДОС очень удобна для быстой перезагрузки на всех моих комп..

Автор:  Freeman [ 20 июл 2012, 14:33 ]
Заголовок сообщения:  Re: "H2O"-моя операционная система - основная идея

Не знаю, откуда взялось число 56 в нике и названиях, но .56 как расширение файлов или даже (кодовое) название проекта выглядит очень стильно -- по-военному и по-хакерски одновременно. Лично у меня вызвает ассоциации с Hangar 18.

iz56 писал(а):
А ОС ДОС очень удобна для быстой перезагрузки на всех моих комп..

Для первых прототипов мы рассматриваем возможность запуска в HX и планируем писать так, чтобы поддерживать с ним совместимость. Очень хорошая штука как в плане функциональности, так и проработанности и аккуратности исходного кода, -- называю это собирательным понятием "школа".

Автор:  iz56 [ 31 дек 2012, 00:57 ]
Заголовок сообщения:  Re: "H2O"-моя опеационная система - основная идея

Что-то подобное делают на http://fforum.winglion.ru/viewforum.php?f=16. Только для Форта. Во всяком случае, обсуждается ВМ (в качестве основы ОС) и немного вокруг неё.

Автор:  iz56 [ 04 сен 2013, 11:10 ]
Заголовок сообщения:  Re: "H2O"-моя опеационная система - основная идея

Пишу ассемблер. Не думал что столько сложностей будет. Пришлось изменить одну команду для вызова подпрограмм.
Как переведу текст из вида макросов для фасма в исх. текст для своего компилятора и при условии что будет ассемблер сам себя собирать - сразу опубликую здесь архив .Лицензия или как правильно в данном случае - достояние общественности.
На данный момент сделана работа с метками и перевод хекс чисел.

Автор:  maisvendoo [ 04 сен 2013, 13:08 ]
Заголовок сообщения:  Re: "H2O"-моя опеационная система - основная идея

iz56 писал(а):
Пишу ассемблер. Не думал что столько сложностей будет.

А зачем понадобился именно самописный ассемблер? Хотя это сродни вопросу а зачем всем тут понадобилась самописная ОС :D . Но всё же интересно, для чего нужен специфический транслятор?

Автор:  iz56 [ 04 сен 2013, 21:49 ]
Заголовок сообщения:  Re: "H2O"-моя опеационная система - основная идея

Что бы было понятней, привожу пример кода - сегодня выделил в отдельную подпрограмму . Здесь вычисляется хэш-значение меток для помещения их в таблицу вида - хеш метки - соответствующий метке адрес .
Хотя и наоборот ,возможно, понятней не будет.

Код:
 
;sub-----------------------[ Sub_CalcHash ]
;адрес лексемы должен быть в Sub_CalcHash.A
dd 0
CalcHash:
Sub_CalcHash =$/4

        putMemConst .hash,HASHVALUE ;init .hash start value for make CRC32
        putMemConst .C,0
        putMemMem .B,.A ;.A = arg = ptr on string

.NextCh = $/4
        putMem_Mem_ .A,.B
        jmpLabelIfMemEConst .l1, .A, _Space ;если .A = const
        jmpLabelIfMemEConst .l1, .A, SPEC_CH_LABEL ;если .A = const
        jmpLabelIfMemEConst .l1, .A, SPEC_CH_LABEL ;если .A = const
        jmpLabelIfMemZ .l1,.A ; (if .A = 0 then goto .l1)
        addMemMem .hash,.A  ;.hash = .hash +.A (без учета переноса)
        shlMemConst .hash,1 ;cut 1 bits
        incMem .B
        incMem .C
        jmpLabelIfMemEConst .l1,.C , _MaxSizeLex
        jmpLabel .NextCh ;goto next char
.l1 =$/4 ;конец рыбалки:)

        putMemMem .A,.hash ;.A = return value

        jmpMem Sub_CalcHash - 1


.hash = $/4
 dd 0

.A = $/4
dd 0
.B = $/4
dd 0
.C = $/4
dd 0


Автор:  Himik [ 05 сен 2013, 11:23 ]
Заголовок сообщения:  Re: "H2O"-моя опеационная система - основная идея

Кажется, пример демонстрирует короткие имена регистров и длинные имена инструкций. Наверняка их можно задать макросами в любом Ассемблере. Это всё малозначительный синтаксический сахар. Мне когда-то хотелось иметь Ассемблер со строгой типизацией. Ещё чтобы он отслеживал неявные изменения регистров. Ведь некоторые сложные инструкции принимают или возвращают сразу несколько регистров, при этом в обычном синтаксисе этого не видно, что плохо. Теперь я уже ассемблерами не увлекаюсь, это слишком экстремальное программирование.

Автор:  iz56 [ 05 сен 2013, 12:23 ]
Заголовок сообщения:  Re: "H2O"-моя опеационная система - основная идея

Это всё фасм макросы - а я хочу всё покороче и вида x86 инструкций. Пример компилируется фасмом.

Автор:  Himik [ 05 сен 2013, 12:36 ]
Заголовок сообщения:  Re: "H2O"-моя опеационная система - основная идея

А, я думал это твой Ассемблер. А что, FASM не понимает обычные трёхбуквенные мнемоники? В конце концов и макросы можно переименовать.

Автор:  iz56 [ 05 сен 2013, 22:12 ]
Заголовок сообщения:  Re: "H2O"-моя опеационная система - основная идея

Проблема в размере одного байта. Я пытаюсь построить всё с нуля и без оглядки на догмы. Почему байт должен быть 8 бит. И потому приспособить фасм трудно, хотя приспособил же как-то.
Я выбрал не самый простой путь - писать ассемблер для вм сразу для этой вм. Это немного похоже на программирование в машинных кодах, когда других программ для целевой (в данном случае вм) архитектуры. В условиях, когда ничего подобного компиляторам не писал. Да ещё без привычных регистров и стека. И с потоками и виртуальным оборудованием . Вот эта сложность сама по себе вызывает интерес и мотивацию для продолжения.

Страница 2 из 3 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/