Пишем свой Assembler: Вызов функции и управление памятью / Stack-машина

  Рет қаралды 3,682

Dev Jungles - Andrii Podkolzin

Dev Jungles - Andrii Podkolzin

Күн бұрын

Пікірлер: 39
@DevJungles
@DevJungles Жыл бұрын
Source Code: github.com/podkolzzzin/CPUModel.Using.CSharp
@otetsdiodor
@otetsdiodor Жыл бұрын
Просто отвал башки, не представляю сколько времени ушло на подготовку. Спасибо за проделанную работу!
@DevJungles
@DevJungles Жыл бұрын
Много 😜🤪😁
@olezhonnv3215
@olezhonnv3215 Жыл бұрын
Ничего ты глубоко не разобрал. Ты показал наивно реализованные основы простенькой ВМ. Молодец! Просто ты в конце сказал, что глубоко разобрал. На самом деле - наивно и поверхностно. Но ты - все равно, большой молодец! Я бы даже так не разобрал это все. Ленивый я.
@olezhonnv3215
@olezhonnv3215 Жыл бұрын
Какие материалы ты брал за основу, чтобы подготовиться к этой работе?
@DevJungles
@DevJungles Жыл бұрын
Глубоко имелось ввиду относительно языков высокого уровня: это точно сильно глубже чем "вот метод, вот параметры".
@DevJungles
@DevJungles Жыл бұрын
Много чего просто фоном много лет читал. Конкретно для подготовки уже купил x86 и arm
@evseevav
@evseevav 6 ай бұрын
Маньяк
@denys-p
@denys-p Жыл бұрын
Кстати, на 14й минуте отвал в рантайме из-за нереализованной ветки в switch-е. Я когда-то делал анализатор для этого и он даже правильно (с моей точки зрения, во всяком случае) работал. Он, вероятно, даже до сих пор работает, но это не точно :)
@vangogih
@vangogih Жыл бұрын
Прикольно наблюдать за тем, как при написании своего низкоуровнего языка начинаешь использовать низкоуровневые операции высокоуровнего языка 😅 Материал топ, по сути, создаем свой il, который можно будет использовать, например, чтобы оптимизировать шарпы. Как это в unity с burst сделали.
@DevJungles
@DevJungles Жыл бұрын
Дада. Есть идея даже портануть код самой виртуалки: там ведь его строк 200 на Си или Раст.
@vangogih
@vangogih Жыл бұрын
@@DevJungles ну а дальше можно и свой 2 регистровый процессов собрать и научить его работать чисто с твоими инструкциями)) Эдакий компьютер с нуля. Кайф, да, много оч идей выходит из этого)
@DevJungles
@DevJungles Жыл бұрын
Дада! Ещё на этом концепте интересно будет реализовать кооперативную многозадачность
@bekowsky9515
@bekowsky9515 Жыл бұрын
Наконец-то продолжение того легендарного видоса
@denys-p
@denys-p Жыл бұрын
Вот в таки потроха я никогда не залезал, интересно посмотреть
@ДанилЖильцов-ф8щ
@ДанилЖильцов-ф8щ Жыл бұрын
Можно ссылку на исходники?
@DevJungles
@DevJungles Жыл бұрын
Добавил в закреплённый комментарий) Сначала забыл
@architedroidno
@architedroidno Жыл бұрын
HardCore HardCode🤓👽
@ei9896
@ei9896 Жыл бұрын
Вот смотрю и понимаю, хорошая вещь! Только хочет предложить абсолютно дикий и квантовый метод для JMPT (это ломает концепцию, но...): 1 А что если процедуру рассматривать как поток или вообще отдельный процесс, на который можно скакать как угодно (можно добавить права доступа и т.п.)? 2 А что если сделать глобальную шину возвратов кода (массив с удобными именами) - т.е. цепочечный тип данных в котором записано, что и как запускалось: id проце(дуры/сса), адрес откуда ушло, адресу куда вернуться 3 А что если сделать глобальный индекс результатов работы процедур: id проце(дуры/сса), ссылка на адрес в памяти где лежит результат, тип - публичный/закрытый Как то так...
@DevJungles
@DevJungles Жыл бұрын
Блин, а это чертовски интересный кейс: такой себе параллельно -ориеетированный рантайм. Это очень интересно... Не знаю сделаю ли с этим что-то, но мысль чертовски интересная и поехавшая: мне нравится)
@skulidropek607
@skulidropek607 Жыл бұрын
лайк
@YummyMetaphor
@YummyMetaphor Жыл бұрын
годно, но нужно самому потьікать чтобьі полностью проникнуться
@DevJungles
@DevJungles Жыл бұрын
Добавил в закреплённый коммент линку на сорсы)
@mykhailo8862
@mykhailo8862 Жыл бұрын
треба придумати свій синтаксис, написати компілятор і придумати свій Паскаль)
@DevJungles
@DevJungles Жыл бұрын
Это даже будет не очень сложно с учётом всего что мы уже сделали))
@anatoliytkachenko1498
@anatoliytkachenko1498 Жыл бұрын
Дякую за гідний контент. Ніяких відосів про "вайтивайти" 😂
@antibioticknone3057
@antibioticknone3057 Жыл бұрын
Не очень красиво получается передавать в конструктор функции количество ее локальных переменных
@DevJungles
@DevJungles Жыл бұрын
Согласен. Вы правы. Можно было сделать красивее: прочитать тело и посчитать. Но не хотелось на это отвлекаться
@nvalet
@nvalet Жыл бұрын
Фоновая музыка имхо лишнее
@DevJungles
@DevJungles Жыл бұрын
Без нее моменты, когда не говорю ничего, а просто манипулирую колос смотрелись как-то странно... Решил добавить)
@nvalet
@nvalet Жыл бұрын
@@DevJungles Было бы круто, если потише будет) Контент у тебя очень крутой, спасибо
@alexandersinitsyn1264
@alexandersinitsyn1264 Жыл бұрын
Хорошее наступление у Украины, полная мобилизация, а боритесь с контрактниками и 300к мобилизованных
@kandreyk9159
@kandreyk9159 Жыл бұрын
"полная мобилизация," >>> так Украине кроме крепостных и нечего больше предложить, Запад дает кредиты на войну и поставляет вооружение
@DevJungles
@DevJungles Жыл бұрын
Чёт я вообще не понял, что Вы имели ввиду.
@HomoSapiensWithLaptop
@HomoSapiensWithLaptop Жыл бұрын
​@@kandreyk9159 Украине нужно было сдаться, стать очередной российской клоакой и перестать существовать? Ради свободы заключенные сбегают из Алькатраса, переплывают пол океана на плотах, прячутся в гондолах самолета. Россияне не знают что такое свобода. Они продали её за "безопасность ". А теперь не имеют ни того, ни другого.
@olezhonnv3215
@olezhonnv3215 Жыл бұрын
​@@DevJungles Рассеянцы бушуют) Обидно им выгребать люлей)
@DickDouble
@DickDouble Жыл бұрын
Учить ASM до изучения языка высокого уровня, особенно ООП - Опасно для неокрепшего мозга, извилины становятся прямыми выстраиваясь последовательно в стэк. С обратной стороны, изучать ASM после языка высокого уровня - Бессмысленно и беспощадно, ибо зачем это все надо, иногда можно потерять способность к высоким языкам. Личный опыт, прошел через оба варианта :)
@DevJungles
@DevJungles Жыл бұрын
После изучения (такого плотного и многолетнего) по мне интересно поковыряться во всем этом: как оно под копотом. Тем более про многое уже есть косвенное представление и оно просто очень красиво складывается заполняя пробелы. Ну а после 5-7 лет ООП уже так просто из головы не выбить: справится с этим разве что функциональщина)
@denys-p
@denys-p Жыл бұрын
Функциональщина вообще в этом плане опасная штука. В том числе всякая теория категорий (которую я не знаю) и как в высокоуровневых функциях/абстракциях дружить всякие казалось бы не очень связанные штуки
ТОП 10 технологічних ідей, що змінили розробку
29:21
Dev Jungles - Andrii Podkolzin
Рет қаралды 2,3 М.
Реальные примеры использования dotMemory
26:24
Dev Jungles - Andrii Podkolzin
Рет қаралды 2,2 М.
Watermelon magic box! #shorts by Leisi Crazy
00:20
Leisi Crazy
Рет қаралды 53 МЛН
🍉😋 #shorts
00:24
Денис Кукояка
Рет қаралды 3,6 МЛН
ЯЗЫК АССЕМБЛЕРА С НУЛЯ | #1 НАЧАЛО
54:43
Python VS С# | Согласен / Не согласен
14:27
Технологии в Контуре
Рет қаралды 30 М.
Hello World на Ассемблере (x86)
9:34
Псевдо Программист
Рет қаралды 161 М.