Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вт июл 25, 2017 9:38 am

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 61 сообщение ]  На страницу Пред. 1 2 3 4 5 След.
Автор Сообщение
 Заголовок сообщения: Re: Высокоуровневый ассемблер
СообщениеДобавлено: Чт сен 24, 2015 5:03 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Сб окт 05, 2013 9:32 pm
Сообщения: 385
Pathoswithin писал(а):
Может коллизия? Хотя, всё равно не понял..

Опечатка. Суть в том, что все функции должны согласовывать номера регистров, чтобы не использовать одни и те же. Если проект чисто свой без сторонних кусков кода/либ, то тут ещё можно придумать систему (скажем, по тысяче регистров на файл (если в регистр можно засунуть массив)), иначе же будет каша.


Вернуться к началу
 Заголовок сообщения: Re: Высокоуровневый ассемблер
СообщениеДобавлено: Чт сен 24, 2015 5:46 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Ср апр 15, 2015 11:13 pm
Сообщения: 156
Исправил много баг. Свел утечку памяти к минимуму. Операции выполняются в 3 раза быстрее, чем в javascript. Добавил функции для получения длины текста, символ из кода ascii, думаю добавитэь разные кодировки, выход из программы с завершением всех созданных процессов.


Вернуться к началу
 Заголовок сообщения: Re: Высокоуровневый ассемблер
СообщениеДобавлено: Чт сен 24, 2015 7:23 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1163
А у тебя JIT-компиляция планируется? Без неё высокой скорости не добиться.


Вернуться к началу
 Заголовок сообщения: Re: Высокоуровневый ассемблер
СообщениеДобавлено: Чт сен 24, 2015 11:30 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Ср апр 15, 2015 11:13 pm
Сообщения: 156
Pathoswithin писал(а):
А у тебя JIT-компиляция планируется? Без неё высокой скорости не добиться.

Конечно, но это уже в конечной стадии скорее всего.

Я вот думаю на счет синтаксиса оттолкуться ли от асма?

Код:
#define cls,'console cls'
main:
console print,'Shell v.1 h-help'
console getch,%10
if %10,KEY_ESC
= end
sym %10,%10
if %10,'h'
= help
!= nocmd
jmp main

help:
cls
console print,'Help text             '
console getch,%10
cls
jmp main

nocmd:
cls
console print,'No cmd                '
sleep 100
cls
jmp main

end:
exit


Вернуться к началу
 Заголовок сообщения: Re: Высокоуровневый ассемблер
СообщениеДобавлено: Пт сен 25, 2015 2:57 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Ср апр 15, 2015 11:13 pm
Сообщения: 156
Организовал вызов функции по адресу

Пример

Код:
#define func1, '%1' // даем знать препроцессору, что func1, как %1
mov func1,1234567 // передаем адрес/число переменной %2, в данном случае адрес функции на который будет сделан вызов
func1 %2 // вызываем функцию func1 с адресом 1234567 и передаем один параметр переменную %2 (автоматически преобразуются данные по типу)


Зачем это нужно? Скоро узнаете 8)


Вернуться к началу
 Заголовок сообщения: Re: Высокоуровневый ассемблер
СообщениеДобавлено: Пт сен 25, 2015 6:48 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Ср апр 15, 2015 11:13 pm
Сообщения: 156
Теперь возможна загрузка obj файлов.
Вот пример

Код:
#define init_console, '%1'
#define print, '%2'

dll load,'/sys/lib/console.obj' // загрузить библиотеку

dll function,init_console,'con_init' // загрузить в переменную %1 адрес функции con_init
dll function,print,'con_write_asciiz' // загрузить в переменную %2 адрес функции con_write_asciiz

#define title,'%10'
mov title,'Test'

init_console title,-1,-1,-1,-1

mov %11,'Full path VM: '
add %11,PATH
add %11,'\n'

add %11,'File name VM: '
add %11,FILE
add %11,'\n'

add %11,'Dir name VM: '
add %11,DIR
add %11,'\n'

add %11,'File name apps: '
add %11,SFILE
add %11,'\n'

add %11,'Full path apps: '
add %11,SPATH
add %11,'\n'

print %11' // вызов функции


Замете, очень удобно, зная только название функции и что за аргументы передавать можно вызвать любую функцию, параметры передаются в формате не в stdcall, поэтому в обратном порядке, возможно потом поменяю.

Так же добавил

Специальные переменные, которые содержат путь где находиться виртуальная машина, название файла виртуальной машины, папка где находиться виртуальная машина ( пригодиться для загрузки и установки настроек ), путь/название/папка откуда запущен файл приложения для виртуалки.

P.S. все названия хэшируются, все номера переменных тоже, разрешение коллизий везде, поэтому думаю встроить массивы не составит труда.


Вложения:
Безымянный.PNG
Безымянный.PNG [ 10.14 КБ | 1062 просмотра ]
Вернуться к началу
 Заголовок сообщения: Re: Высокоуровневый ассемблер
СообщениеДобавлено: Сб сен 26, 2015 2:25 am 
Не в сети
Аватара пользователя

Зарегистрирован: Ср апр 15, 2015 11:13 pm
Сообщения: 156
Ура! Появилось возможность создавать первый объект - это окно.

Пример
Код:
object window,%1 // определим переменную 1, как окно
property left,%1,100 // изменим свойство left на 100 для окна
create %1 // создадим окно


Вернуться к началу
 Заголовок сообщения: Re: Высокоуровневый ассемблер
СообщениеДобавлено: Сб сен 26, 2015 3:58 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Ср апр 15, 2015 11:13 pm
Сообщения: 156
Оптимизировал еще ВМ. Теперь инкремент команда, которая находиться в 10 000 000 интераций выполняется за 4 секунды, когда в то же время js выполняется тоже самое за 18 сек. на моей машине. 18/4 = 4.5 раза быстрее, когда раньше было 3. Прирост на 1.5 раза.


Вернуться к началу
 Заголовок сообщения: Re: Высокоуровневый ассемблер
СообщениеДобавлено: Сб сен 26, 2015 7:32 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1163
Что всё равно дофига медленней чем скомпилированный код.

... или я не понял. Ты хочешь на основе этого интерпретатора сделать поддержку javascript для браузера?


Вернуться к началу
 Заголовок сообщения: Re: Высокоуровневый ассемблер
СообщениеДобавлено: Сб сен 26, 2015 8:25 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Ср апр 15, 2015 11:13 pm
Сообщения: 156
Pathoswithin писал(а):
Что всё равно дофига медленней чем скомпилированный код.

... или я не понял. Ты хочешь на основе этого интерпретатора сделать поддержку javascript для браузера?


скомпилированный код с динамической типизацией?
Вроде не знаю таких, которые быстрее работать будут.
За все надо платить, за комфорт кодинга платишь скоростью.

P.S. можно прикрутить js, для этого нужно сделать транслятор js в коды для VM. 1 этап когда запускается скрипт транслируется в байт код для ВМ. 2 этап запуск самого байт кода.

Сделаю 2 этап он сложнее чем 1, а там я думаю трансляцию не составит труда написать.
Вот думаю может для ВМ браузер напишу, уж быстрее писаться будет, чем на Си, уж тем более чем на асм.
И при модернизации ВМ модернизируются все проги включающие в эту ВМ.


Вернуться к началу
 Заголовок сообщения: Re: Высокоуровневый ассемблер
СообщениеДобавлено: Сб сен 26, 2015 8:51 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Ср апр 15, 2015 11:13 pm
Сообщения: 156
Pathoswithin писал(а):
Что всё равно дофига медленней чем скомпилированный код.

... или я не понял. Ты хочешь на основе этого интерпретатора сделать поддержку javascript для браузера?

Если сравнить скорость работы скомпилированной на си программы, то она в 100 быстрее получается, но это не интерпретатор и со статической типизацией. Я думаю 100 раз это уже не так много. Правда нет возможно провести эксперемент с java.


Вернуться к началу
 Заголовок сообщения: Re: Высокоуровневый ассемблер
СообщениеДобавлено: Сб сен 26, 2015 11:55 pm 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

Зарегистрирован: Чт мар 26, 2015 5:16 pm
Сообщения: 1163
Благодаря JIT-компиляции java работает почти с той же скоростью что и си, но жрёт феерическое количество памяти и довольно долго запускается. А вот без JIT интерпретируемый язык является жутко медленным безумием.
pavelyakov писал(а):
скомпилированный код с динамической типизацией?
Вроде не знаю таких, которые быстрее работать будут.
За все надо платить, за комфорт кодинга платишь скоростью.
Несколько лет пытаюсь понять, в чём заключается комфорт от типов данных? Пишу на ассемблере именно потому, что там их нет.


Вернуться к началу
 Заголовок сообщения: Re: Высокоуровневый ассемблер
СообщениеДобавлено: Сб сен 26, 2015 11:59 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Ср апр 15, 2015 11:13 pm
Сообщения: 156
Pathoswithin писал(а):
Благодаря JIT-компиляции java работает почти с той же скоростью что и си, но жрёт феерическое количество памяти и довольно долго запускается. А вот без JIT интерпретируемый язык является жутко медленным безумием.
pavelyakov писал(а):
скомпилированный код с динамической типизацией?
Вроде не знаю таких, которые быстрее работать будут.
За все надо платить, за комфорт кодинга платишь скоростью.
Несколько лет пытаюсь понять, в чём заключается комфорт от типов данных? Пишу на ассемблере именно потому, что там их нет.

Тем что меньше писать нужно и меньше тратить времени.


Вернуться к началу
 Заголовок сообщения: Re: Высокоуровневый ассемблер
СообщениеДобавлено: Вс сен 27, 2015 12:00 am 
Не в сети
Аватара пользователя

Зарегистрирован: Ср апр 15, 2015 11:13 pm
Сообщения: 156
Pathoswithin писал(а):
Благодаря JIT-компиляции java работает почти с той же скоростью что и си, но жрёт феерическое количество памяти и довольно долго запускается. А вот без JIT интерпретируемый язык является жутко медленным безумием.
pavelyakov писал(а):
скомпилированный код с динамической типизацией?
Вроде не знаю таких, которые быстрее работать будут.
За все надо платить, за комфорт кодинга платишь скоростью.
Несколько лет пытаюсь понять, в чём заключается комфорт от типов данных? Пишу на ассемблере именно потому, что там их нет.

Вот и остается выбирать или быстродействие, или память.


Вернуться к началу
 Заголовок сообщения: Re: Высокоуровневый ассемблер
СообщениеДобавлено: Вс сен 27, 2015 12:23 am 
Не в сети
Аватара пользователя

Зарегистрирован: Ср апр 15, 2015 11:13 pm
Сообщения: 156
Pathoswithin писал(а):
Благодаря JIT-компиляции java работает почти с той же скоростью что и си, но жрёт феерическое количество памяти и довольно долго запускается. А вот без JIT интерпретируемый язык является жутко медленным безумием.

Почитал более подробно про JIT компиляцию, в принципе легче, когда имеешь байт код, который уже есть компилировать. Главное понять принцип как это реализовано.


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

Часовой пояс: UTC+03:00


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

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


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

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