Высокоуровневый ассемблер

Applications development, KoOS API questions
  • А какая конечная цель? Смесь java с ассемблером? Так там тоже есть байткод.
  • Pathoswithin wrote:А какая конечная цель? Смесь java с ассемблером? Так там тоже есть байткод.
    Сделать транслятор к этому ассемблеру, синтаксис будет на подобии JavaScript. Программы получаются несколько байт, но запускаются через интерпретатор. Большая поддержка ф-ций, упрощённая разработка.
    Технологии меняют мир, а я - меняю технологии.
  • А не лучше написать набор макросов для fasm?
    to infinity and beyond
  • То-есть ты хочешь неслабо пожертвовать скоростью, чтобы уменьшить и без того маленький размер? Мне кажеться, размер то как раз уже всем пофиг, рядом с размерами видео...
    Ты уверен, что у тебя хватит энтузиазма и времени сделать большую поддержку ф-ций?
  • Pathoswithin wrote:То-есть ты хочешь неслабо пожертвовать скоростью, чтобы уменьшить и без того маленький размер? Мне кажеться, размер то как раз уже всем пофиг, рядом с размерами видео...
    Ты уверен, что у тебя хватит энтузиазма и времени сделать большую поддержку ф-ций?
    Уже есть библеотеки на cmm, которые писал пол года где-то. Также и canvas, который позволяет рисовать без мерцаний, свои gui элементы, правда не все, хочу доделать с поддержкой font редактор. Скорость особо не теряется, попробовать если ручками писать суммирование строк с числами и т.д. больше времени уйдет и больше багов поймать можно.
    Технологии меняют мир, а я - меняю технологии.
  • punk_joker wrote:А не лучше написать набор макросов для fasm?
    Я хочу сделать быстроту разработки, макросы не решат все проблемы.
    Технологии меняют мир, а я - меняю технологии.
  • А, то-есть уже много наработок. Тогда главный вопрос — почему виртуальная машина, а не компилятор?
  • Pathoswithin wrote:А, то-есть уже много наработок. Тогда главный вопрос — почему виртуальная машина, а не компилятор?
    Хочу чтобы приложения работали не только в Колибри.
    Если писать компилятор с динамической типизацией, то приложения будут занимать порядка ~ 40 кб. в обычном hello world. А в серьезных проектах боюсь представить.
    Я уже писал транслятор (для динамической типизации) для компилятора Си ktcc. Все бы хорошо, но размер приложений не радовал, так же хотелось чтобы приложения работали не только в Колибри, но и в Windows к примеру или в JavaScript браузере для быстрой отладки.
    Last edited by paulcodeman on Mon Sep 21, 2015 3:10 pm, edited 2 times in total.
    Технологии меняют мир, а я - меняю технологии.
  • Добавил:
    1) поддержку меток
    2) cmp (сравнение строк, чисел, переменных/ячеек по значению "строгое сравнение" т.е. если тип отличается то false
    3) прыжки jmp, je

    Пример

    Code: Select all

    cmp 'test','test';
    je okey;
    jmp end;
    okey:
    console 0,'okey!!';
    end:
    Выведет

    Code: Select all

    okey!!
    Технологии меняют мир, а я - меняю технологии.
  • Пример кода

    Code: Select all

    mov %1,0
    loop:
    console 0,%1
    sleep 50
    add %1,1
    cmp %1,10
    je end
    jmp loop
    end:
    Вывод чисел от 0 до 9 с задержкой 50 сотых секунд.
    Attachments
    7526142.png
    7526142.png (6.77 KiB)
    Viewed 17328 times
    Last edited by paulcodeman on Tue Sep 22, 2015 1:42 pm, edited 1 time in total.
    Технологии меняют мир, а я - меняю технологии.
  • Добавлены константы
    Теперь можно еще лучше упрощать код
    Пример

    Code: Select all

    #define print, 'console 0,'
    #define getch, 'console 1'
    print 'Test:'
    getch
    print 'Work!!!'
    или пример приведенный выше

    Code: Select all

    #define var1,'%1'
    
    mov var1,0
    loop:
    console print,var1
    sleep 50
    add var1,1
    cmp var1,10
    je end
    jmp loop
    end:
    По умолчанию уже за ранее определены названия:
    print, getch, write,.. и т.д.
    Технологии меняют мир, а я - меняю технологии.
  • И надо снова изобретать велосипед. Существует JAVA (не JavaScript) со своим ByteCode, так и портируйте её, -
    всем хороша, работает хоть в Windows, хоть Ёща.
    Программист не тот, кто постоянно пишет КОД, а тот кто сможет понять чужой КОД!!!
  • Драйвер PS/2 клавиатуры написанный под абстрактный язык программирования для
    виртуальной машины на её языке, которая будет виртуально исполнять то, что должно
    выполнять реальное железо, раз в *-нацать быстрее :lol:
    Программист не тот, кто постоянно пишет КОД, а тот кто сможет понять чужой КОД!!!
  • Artyom wrote:И надо снова изобретать велосипед. Существует JAVA (не JavaScript) со своим ByteCode, так и портируйте её, -
    всем хороша, работает хоть в Windows, хоть Ёща.
    Портировать Java? Вы хоть представляете какой объем работы это занимает? Легче велосипед изобрести, чем портировать java.
    Технологии меняют мир, а я - меняю технологии.
  • Who is online

    Users browsing this forum: No registered users and 1 guest