Упрощение языка ассемблер
Всем привет, я хочу показать здесь очень давний проект. Началось всё с изучения проги под названием Logisim (простенький эмулятор для сборки цифровых схем). Там я набросал схему RISC подобного компьютера, а скорее простейшей вычислительной машины, у неё был свой собственный набор инструкций, поэтому я и создал компилятор с самописного языка программирования на ассемблер.
Вот как выглядит синтаксис:
label. #main <- условное начало программы
assig. r1 '4' <- запись значения в регистр
assig. r2 '5' <- тоже запись
math. r1 + r2 r3 <- сложение двух регистров и запись их в третий
out. "r" r3 P5 <- системная команда вывода значения в терминал python (в эмуляторе)
halt. <- точка останова.
Хоть язык и простой, здесь есть поддержка ветвления, вызова других программ (заранее скомпилированных), а также поддержка буквенных лейблов перехода (label. #main).
Я уже написал простенькие программы: алгоритм брезенхема, змейку, текстовый редактор.
Также есть эмулятор, который запускает программы в уже скомпилированном виде. С помощью клода сделал парсер на x86 мнемоники, но работает очень плохо, поэтому планирую переписывать эмулятор на rust/c++.
Это сложно назвать проектом, поэтому не судите строго. Я оставлю ссылку на гитхаб, кому особо интересно.
Думаю, на этом всё. Всем удач и хорошего дня!
Ссылка на гитхаб: https://github.com/alatock/loGsdk-v-0.4
Понятно, зачем ты это сделал, непонятно, зачем поделился