OSDev

для всех
Текущее время: 28 мар 2024, 23:20

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: 20 июл 2012, 13:29 
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 июл 2012, 14:33 
Аватара пользователя

Зарегистрирован: 28 май 2012, 23:44
Сообщения: 237
Откуда: Санкт-Петербург
Не знаю, откуда взялось число 56 в нике и названиях, но .56 как расширение файлов или даже (кодовое) название проекта выглядит очень стильно -- по-военному и по-хакерски одновременно. Лично у меня вызвает ассоциации с Hangar 18.

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 31 дек 2012, 00:57 
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 сен 2013, 11:10 
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 сен 2013, 13:08 
Аватара пользователя

Зарегистрирован: 25 июл 2013, 08:45
Сообщения: 141
Откуда: Новочеркасск
iz56 писал(а):
Пишу ассемблер. Не думал что столько сложностей будет.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04 сен 2013, 21:49 
Аватара пользователя

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

Код:
 
;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



Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 сен 2013, 11:23 

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 сен 2013, 12:23 
Аватара пользователя

Зарегистрирован: 16 апр 2010, 10:10
Сообщения: 320
Откуда: Псковская обл.
Это всё фасм макросы - а я хочу всё покороче и вида x86 инструкций. Пример компилируется фасмом.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 сен 2013, 12:36 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
А, я думал это твой Ассемблер. А что, FASM не понимает обычные трёхбуквенные мнемоники? В конце концов и макросы можно переименовать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 сен 2013, 22:12 
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB