Comments 9
Похоже, колесо сансары замкнулось. Идëм на второй круг. Когда ожидать симулятор .NET поверх этого всего?
Нет, это не для этого и ваши слова здесь не совсем подходят. Этот симулятор например я показываю студентам, которые никогда в жизни настоящий ассемблер проходит или использовать не будут. А тут есть возможность потрогать и получить первое представление. И так как мои лекции о процессорах и их архитектуре проходят до этого, то и первое понимание самой сути ассемблер на этом симуляторе вполне себя оправдывает. Почти никто из моих студентов может быть никогда и не будет программистом в ассемблере, но представление от него он получит. Разве это плохо?
Прям с языка сорвали.
Тут идеальный пример низкоуровневой архитектуры, на уровне процессора z80, чтобы понять как оно там работает в простом виде, когда еще нет предсказывающих ветвлений, защищенного режима, многоядерности и пары сотен регистров.
И запустить можно ВЕЗДЕ, в браузере.
Как раз самое то, чтобы не только показать, но и пощупать и написать простейшую программу. Для этого и 24-символьного дисплея в принципе достаточно.
С этим симулатором хорошо показать различные проблемы, например с переполнением стека. Потому что многие вроде понимают, что это такое, но как к этому приходит - не ясно. А написав несколько примеров, где например ret и goto перемешиваются так, что в стек остаётся всегда что-то, что не должно - то и работы программы нарушается.
Второй пример для переполнение стека , когда например при вызове функции сохраняются два регистра с командой push, а перед возвратом берём только один регистр назад с командой Pop. И если вызов такой функции повторяется какое-то n-колличество раз, то и наглядно как стек 'нежелательно' заполняется и когда-то переполняется. И в какой-то момент настолько, что встречается с местом, где уже находится и код. Вроде банальность, но именно так новички понимают, как работают внутренние вещи в процессоре или операционной системе.
Заинтересовало как реализован парсинг команд?
Как там геймрип сайбера поживает?)
Я ожидал увидеть компилятор ассемблера на javascript, а тут просто расписаны основы ассемблера. И что выведет ваша функция print, если строка будет нулевой длины ?
Руководство по симулятору простого ассемблера для 8-битного процессора на Javascript