Zxx что это
Перейти к содержимому

Zxx что это

Что такое zxc. Термин из Dota объединил игроков, которые борются с позёрами среди гулей и дед инсайдов

19 января 2022 19:25 (материал обновлен 20.01.2022) Виктория МолчановаВиктория Молчанова

Аббревиатура zxc для обозначения настоящих дед инсайдов и гулей распространилась по Сети и вводит в ступор пользователей, не посвящённых в субкультуры. Откуда взялась комбинация букв, что это значит, при чём тут Dota 2 и как отличить настоящего zxc-гуля от позёра, разобралась авторка Medialeaks.

Откуда взялась аббревиатура zxc

Буквенное сочетание zxc в последние годы распространилось по Сети, ассоциируясь с субкультурой гулей и дед инсайдов. Аббревиатура появилась благодаря игрокам в Dota, которые чаще всего выбирают персонажа Shadow Fiend.

Shadow Fiend

Zxc — это кнопки комбинации способностей героя, которые были актуальны в Dota 1. При нажатии на клавиши одно и то же умение действовало по-разному: Z — койл (дальность действия. — Прим. Medialeaks) на ближнем расстоянии, X — среднее расстояние, C — дальнее расстояние.

Позже игроки начали называть zxc придуманный ими же режим боя один на один, когда оба игрока выбирают персонажа Shadow Fiend. Этот режим полюбили геймеры, называющие себя гулями и дед инсайдами. Они начали приписывать к своим никам сочетание трёх букв, как блогер zxcursed, и ставили на аватарки котов или Канеки Кена из аниме «Токийский гуль», которые считаются атрибутами субкультур.

Скриншот аккаунта

Настоящие zxc-гули и zxс — дед инсайды презирают тех, кто не играл в первую Dota, так как они якобы не знают изначального значения комбинации букв.

Как отличить настоящего zxc от позёра

Буквенное сочетание быстро разошлось по Сети, перестав ассоциироваться с геймерами. Гули и дед инсайды, не играющие в Dota, всё так же ходят в чёрных масках, которые закрывают половину лица, и ставят на аватарки котов. Они сделали zxc аббревиатурой, которая ассоциируется с грустью.

Пользователь тиктока mirochkapozer предложил парные аватарки с кошкой и написал в хештегах zxc.

Тиктокерша glushk00va пошутила, что загуглила, что такое zxc и 1000-7, и тут же стала дед инсайдом.

После того как буквенное сочетание zxc разошлось по Сети, геймеры принялись возмущаться, называя позёрами не играющих в Dota пользователей интернета. Для того чтобы вычислить настоящего zxc, они просили по памяти пропеть слова песни juggernaut исполнителя Shadowraze.

Самый важный ронин в этой мёртвой гуль-тусовке. Глаза — шаринган Итачи, самый главный в потасовке.

Настоящие zxc считают трек своим гимном и знают наизусть.

Десятилетние zxc, назовите хоть одно слово из этой песни, кроме «шаринган» и «Итачи», — пишет тиктокер strxzeex.

В качестве фото профиля у zxc может стоять отфотошопленный снимок Райана Гослинга, кот, Канеки Кен, Lil Peep или Shadow Fiend.

Аватарки zxc

Также у истинных zxc на обоях в телефоне стоит Канеки Кен в образе кота.

Кот zxc

Главной проверкой на «трушность» zxc стало знание кодекса, придуманного последователями субкультуры. Большинство правил относятся к поведению в Dota, но есть и применимые в повседневной жизни:

  1. Тебе должно быть плевать. Ты аморал, без нравственных качеств. Тебя послали [к чёрту], сказали, что ты бездарь? Не позорься, не оправдывайся, не отвечай, хочешь доказать — докажи на деле, уничтожь в zxc.
  2. Если ты достоин называться гулем, то ты априори ставишь себя выше остальных.
  3. Гули нормальные, ты не токсик свинья и позёр, ты нормальный, порофли с тимой (командой. — Прим. Medialeaks), если хочешь, хорошо общайся со своими ребятами, если нужно, уважай тех, кто действительно этого достоин.
  4. ЧСВ — положительное качество, ты сильнее и лучше всех, но ты должен это оправдывать.
  5. Будь верен своим идеалам. Тебе необязательно иметь гуля на аве, к чему это, поставь Lil Peep или Гослинга, если хочешь, держись идеалов, но твой ник не должен быть отвратительным.
  6. Никогда не пиши заглавными буквами. Пиши размеренно и по правилам, не будь быдлом, это низко.
  7. Запомни в последний раз: ты не клоун, не позёр и не нытик, ты гуль, не позорься и не строй из себя не пойми что.

Субкультура zxc появилась в ответ на распространение гулей и дед инсайдов. Изначально оба течения образовались из любителей Dota, но в итоге вышли далеко за пределы игры. Теперь те, кто помнит, что стояло у истоков субкультур, возмущены теми, кто присоединился уже после популярности движений.

Чудеса хеширования

Криптографические хеш-функции — незаменимый и повсеместно распространенный инструмент, используемый для выполнения целого ряда задач, включая аутентификацию, защиту файлов и даже обнаружение зловредного ПО. Как они работают и где применяются?

Криптографические хеш-функции — незаменимый и повсеместно распространенный инструмент, используемый для выполнения целого ряда задач, включая аутентификацию, проверку целостности данных, защиту файлов и даже обнаружение зловредного ПО. Существует масса алгоритмов хеширования, отличающихся криптостойкостью, сложностью, разрядностью и другими свойствами. Считается, что идея хеширования принадлежит сотруднику IBM, появилась около 50 лет назад и с тех пор не претерпела принципиальных изменений. Зато в наши дни хеширование обрело массу новых свойств и используется в очень многих областях информационных технологий.

Что такое хеш?

Если коротко, то криптографическая хеш-функция, чаще называемая просто хешем, — это математический алгоритм, преобразовывающий произвольный массив данных в состоящую из букв и цифр строку фиксированной длины. Причем при условии использования того же типа хеша длина эта будет оставаться неизменной, вне зависимости от объема вводных данных. Криптостойкой хеш-функция может быть только в том случае, если выполняются главные требования: стойкость к восстановлению хешируемых данных и стойкость к коллизиям, то есть образованию из двух разных массивов данных двух одинаковых значений хеша. Интересно, что под данные требования формально не подпадает ни один из существующих алгоритмов, поскольку нахождение обратного хешу значения — вопрос лишь вычислительных мощностей. По факту же в случае с некоторыми особо продвинутыми алгоритмами этот процесс может занимать чудовищно много времени.

Как работает хеш?

Например, мое имя — Brian — после преобразования хеш-функцией SHA-1 (одной из самых распространенных наряду с MD5 и SHA-2) при помощи онлайн-генератора будет выглядеть так: 75c450c3f963befb912ee79f0b63e563652780f0. Как вам скажет, наверное, любой другой Брайан, данное имя нередко пишут с ошибкой, что в итоге превращает его в слово brain (мозг). Это настолько частая опечатка, что однажды я даже получил настоящие водительские права, на которых вместо моего имени красовалось Brain Donohue. Впрочем, это уже другая история. Так вот, если снова воспользоваться алгоритмом SHA-1, то слово Brain трансформируется в строку 97fb724268c2de1e6432d3816239463a6aaf8450. Как видите, результаты значительно отличаются друг от друга, даже несмотря на то, что разница между моим именем и названием органа центральной нервной системы заключается лишь в последовательности написания двух гласных. Более того, если я преобразую тем же алгоритмом собственное имя, но написанное уже со строчной буквы, то результат все равно не будет иметь ничего общего с двумя предыдущими: 760e7dab2836853c63805033e514668301fa9c47.

Впрочем, кое-что общее у них все же есть: каждая строка имеет длину ровно 40 символов. Казалось бы, ничего удивительного, ведь все введенные мною слова также имели одинаковую длину — 5 букв. Однако если вы захешируете весь предыдущий абзац целиком, то все равно получите последовательность, состоящую ровно из 40 символов: c5e7346089419bb4ab47aaa61ef3755d122826e2. То есть 1128 символов, включая пробелы, были ужаты до строки той же длины, что и пятибуквенное слово. То же самое произойдет даже с полным собранием сочинений Уильяма Шекспира: на выходе вы получите строку из 40 букв и цифр. При всем этом не может существовать двух разных массивов данных, которые преобразовывались бы в одинаковый хеш.

Вот как это выглядит, если изобразить все вышесказанное в виде схемы:

Как работает хеширование

Для чего используется хеш?

Отличный вопрос. Однако ответ не так прост, поскольку криптохеши используются для огромного количества вещей.

Для нас с вами, простых пользователей, наиболее распространенная область применения хеширования — хранение паролей. К примеру, если вы забыли пароль к какому-либо онлайн-сервису, скорее всего, придется воспользоваться функцией восстановления пароля. В этом случае вы, впрочем, не получите свой старый пароль, поскольку онлайн-сервис на самом деле не хранит пользовательские пароли в виде обычного текста. Вместо этого он хранит их в виде хеш-значений. То есть даже сам сервис не может знать, как в действительности выглядит ваш пароль. Исключение составляют только те случаи, когда пароль очень прост и его хеш-значение широко известно в кругах взломщиков. Таким образом, если вы, воспользовавшись функцией восстановления, вдруг получили старый пароль в открытом виде, то можете быть уверены: используемый вами сервис не хеширует пользовательские пароли, что очень плохо.

Вы даже можете провести простой эксперимент: попробуйте при помощи специального сайта произвести преобразование какого-нибудь простого пароля вроде «123456» или «password» из их хеш-значений (созданных алгоритмом MD5) обратно в текст. Вероятность того, что в базе хешей найдутся данные о введенных вами простых паролях, очень высока. В моем случае хеши слов «brain» (8b373710bcf876edd91f281e50ed58ab) и «Brian» (4d236810821e8e83a025f2a83ea31820) успешно распознались, а вот хеш предыдущего абзаца — нет. Отличный пример, как раз для тех, кто все еще использует простые пароли.

Еще один пример, покруче. Не так давно по тематическим сайтам прокатилась новость о том, что популярный облачный сервис Dropbox заблокировал одного из своих пользователей за распространение контента, защищенного авторскими правами. Герой истории тут же написал об этом в твиттере, запустив волну негодования среди пользователей сервиса, ринувшихся обвинять Dropbox в том, что он якобы позволяет себе просматривать содержимое клиентских аккаунтов, хотя не имеет права этого делать.

Впрочем, необходимости в этом все равно не было. Дело в том, что владелец защищенного копирайтом контента имел на руках хеш-коды определенных аудио- и видеофайлов, запрещенных к распространению, и занес их в список блокируемых хешей. Когда пользователь предпринял попытку незаконно распространить некий контент, автоматические сканеры Dropbox засекли файлы, чьи хеши оказались в пресловутом списке, и заблокировали возможность их распространения.

Где еще можно использовать хеш-функции помимо систем хранения паролей и защиты медиафайлов? На самом деле задач, где используется хеширование, гораздо больше, чем я знаю и тем более могу описать в одной статье. Однако есть одна особенная область применения хешей, особо близкая нам как сотрудникам «Лаборатории Касперского»: хеширование широко используется для детектирования зловредных программ защитным ПО, в том числе и тем, что выпускается нашей компанией.

Как при помощи хеша ловить вирусы?

Примерно так же, как звукозаписывающие лейблы и кинопрокатные компании защищают свой контент, сообщество создает списки зловредов (многие из них доступны публично), а точнее, списки их хешей. Причем это может быть хеш не всего зловреда целиком, а лишь какого-либо его специфического и хорошо узнаваемого компонента. С одной стороны, это позволяет пользователю, обнаружившему подозрительный файл, тут же внести его хеш-код в одну из подобных открытых баз данных и проверить, не является ли файл вредоносным. С другой — то же самое может сделать и антивирусная программа, чей «движок» использует данный метод детектирования наряду с другими, более сложными.

Криптографические хеш-функции также могут использоваться для защиты от фальсификации передаваемой информации. Иными словами, вы можете удостовериться в том, что файл по пути куда-либо не претерпел никаких изменений, сравнив его хеши, снятые непосредственно до отправки и сразу после получения. Если данные были изменены даже всего на 1 байт, хеш-коды будут отличаться, как мы уже убедились в самом начале статьи. Недостаток такого подхода лишь в том, что криптографическое хеширование требует больше вычислительных мощностей или времени на вычисление, чем алгоритмы с отсутствием криптостойкости. Зато они в разы надежнее.

Кстати, в повседневной жизни мы, сами того не подозревая, иногда пользуемся простейшими хешами. Например, представьте, что вы совершаете переезд и упаковали все вещи по коробкам и ящикам. Погрузив их в грузовик, вы фиксируете количество багажных мест (то есть, по сути, количество коробок) и запоминаете это значение. По окончании выгрузки на новом месте, вместо того чтобы проверять наличие каждой коробки по списку, достаточно будет просто пересчитать их и сравнить получившееся значение с тем, что вы запомнили раньше. Если значения совпали, значит, ни одна коробка не потерялась.

Самые неординарные языки программирования

Признаться честно единственная моя связь с программированием в том, что мой брат программист, ну еще я в школе учил Pascal. Однако, я полностью осознаю всю сложность и красоту программирования. Создать программу, код которой не будет содержать «мусора», достойно похвалы. Что уж говорить о создании самого языка, на котором и пишутся программы. Проще говоря — это сложно, чертовски сложно. И, значит, это должно быть обдуманно и нести какой-то смысл. Но не всегда. Сегодня мы с вами вместе приподнимем брови в удивлении, ознакомившись с самыми нелепыми и смешными языками программирования. Поехали.

Прежде чем начать рассматривать наших участников, хотелось бы обозначить некоторые термины, имеющие непосредственное значение.

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

Тьюринг-полным называют язык программирования, с помощью которого можно реализовать любую вычислимую функцию.

Автором этого языка является Адам Линдсэй, исследователь отдела компьютерных технологий Ланкастерского университета. Сие творение увидело свет в 2007 году.

Свое необычное название язык получил в честь интернет мема Lolcat. Структура его состоит из очень небольшого словаря сленгового английского языка.

Пример кода для вывода сообщения «Hello World!»:

Разберем каждую строку по полочкам:

HAI — начало программы
CAN HAS «file name»? — включает в текст программы содержимое указанного файла
VISIBLE line — вывод на экран
KTHXBYE — конец программы

  • PLZ command?
  • AWSUM THX
    code
  • O NOES
    code


Сайт Грегори Ричардса

Создан в 2005 году Грегором Ричардсом. Структурно язык весьма сложный, так как сочетает в себе использование постфиксов, и требует серьезных манипуляций с основным стеком в сочетании с его объектно-ориентированной структурой.

Вот как выглядит код программы «Hello, World!»:

Язык программирования для любителей крайне радикального минимализма. Был создан в 1993 году Урбаном Мюллером. Отличительной чертой данного языка является наличие лишь 8 команд, которые записываются как один символ. Мюллер хотел создать язык с самым малым компилятором. Так и вышло. Компилятор для Brainfuck весит меньше 200 байт. Данный язык является тьюринг-полным, потому может использоваться наравне с Java или Pascal, например.

«Hello, World!» на языке Brainfuck:

Разбор команд и их значения

> — перейти к следующей ячейке
< — перейти к предыдущей ячейке
+ — увеличить значение в текущей ячейке на 1
— уменьшить значение в текущей ячейке на 1
. — напечатать значение из текущей ячейки
, — ввести извне значение и сохранить в текущей ячейке
[ — если значение текущей ячейки 0, перейти вперёд по тексту программы на ячейку, следующую за соответствующей ] (с учётом вложенности)
] — если значение текущей ячейки не ноль, перейти назад по тексту программы на символ [ (с учётом вложенности)

Автором языка программирования Chicken стал Торбьёрн Сёдерштедт.

Составляющими языка являются «chicken», « » (пробел) и «\n». В каждой строке определенное число «chicken» разделенных пробелами, от числа «chicken» зависит какая команда будет исполнятся.

Инструкции загружаются в стек, где они и выполняются, что позволяет вводить произвольный код и выполнять его с помощью скачка. Поскольку стек программы не ограничен, то есть возможность само-модифицирования кода.

Пользователь может предоставить вводные данные перед выполнением программы. Они сохранятся в одном из двух регистров.

Стек разделен на три сегмента.

Первый сегмент состоит из 2 регистров. Один просто указывает на сам стек. Другой — содержит вводные данные пользователя, которые чаще всего представлены строкой. Эти регистры используются инструкцией LOAD.

Второй сегмент содержит загруженный код. Для каждой строки кода есть ячейка в стеке, которая содержит информацию сколько «chicken» в строке. Этот сегмент используется для исполнения программы. Он автоматически останавливается инструкцией EXIT.

Третий сегмент содержит фактический стек программы. Когда инструкции выполняются, они извлекают значения в этом месте. А поскольку сегменты не изолированы, то существует возможность изменять значения в коде.

chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken
chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken
chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken chicken
chicken chicken chicken chicken chicken chicken

Очень необычный язык, выпущеный в 2003 году в честь Дня Смеха (1 апреля) Эдвином Брэди и Крисом Моррисом. Основной чертой этого языка является его «скрытность». Дело в том, что команды и строки кода формируются путем использования исключительно пробелов, табуляции и переходом на новую строку.

Вот как выглядит «Hello, World!» (синий — табуляция, красный — пробелы)

В далеком 1993 году Крис Пресс поставил перед собой задачу разработать самый сложный для компиляции язык программирования. Так и появился Befunge. Сложность достигается за счет команд p и g, которые модифицируют текст программы.

Версия языка 1993 года была ограничена таблицей 25х80 (стандартный размер текстового экрана), потому эта версия не может быть тьюринг-полной. Если же таблица будет бесконечной, то Befunge будет тьюринг-полным.

Подробное описание команд

Каждая из команд кодируется под видом символа из таблицы ASCII (см. рисунок выше).

Команды сгруппированы по типу действия.

> — вправо
< — влево
^ — вверх
v — вниз
_ — вправо, если на вершине стека 0, иначе — влево
| — вниз, если на вершине стека 0, иначе — вверх
? — в случайном направлении
# — пропустить следующую ячейку
@ — конец программы

Манипуляции со стеком:

: — Поместить в стек копию вершины (forth:DUP)
\ — Поменять местами вершину и подвершину (forth:SWAP)
$ — Удалить вершину (forth:DROP)

Модификация кода программы:

p «PUT» — со стека извлекаются координаты ячейки и ASCII-код символа, который помещается по этим координатам
g «GET» — со стека извлекаются координаты ячейки; ASCII-код символа по этим координатам помещается в стек

0-9 — Поместить число в стек
« — Начало/конец символьного режима, в котором ASCII-коды всех текущих символов программы помещаются в стек

Стековые арифметические операции:

+ — Сложение вершины и подвершины (forth:+)
— Вычитание вершины и подвершины (forth:-)
* — Умножение вершины и подвершины (forth:*)
/ — Целочисленное деление (forth:/)
% — Остаток от деления (forth:MOD)

Стековые логические операции:

! — Отрицание: нуль на вершине заменяется на 1, ненулевое значение — на 0 (forth:0=)
` — Сравнение «больше, чем»: если подвершина больше вершины, в стек помещается 1, иначе 0 (forth:>)

& — Запросить у пользователя число и поместить его в стек

— Запросить у пользователя символ и поместить в стек его ASCII-код
. — Распечатать вершину стека как целое число (forth:.)
, — Распечатать символ, соответствующий ASCII-коду на вершине стека (forth:EMIT)

Код программы «Hello, World!» на языке Befunge:

Последовательность Фибоначчи (первые 14 чисел):

Наверное, самый визуализированный эзотерический язык программирования. Был создан Давидом Морган-Маром и назван в честь нидерландского художника Пита Мондриана. При чем тут он, спросите Вы? Дело в том, что программы, написанные на данном языке, выглядят как разноцветные картинки, своего рода картины в стиле абстракционизма.

Основой данного языка является 20 цветов, 18 из которых связаны между собой в двух циклах:

Цикл оттенков: красный → жёлтый → зелёный → голубой → синий → фиолетовый → красный
Цикл яркости: светлый → нормальный → тёмный → светлый

Последние 2 цвета (белый и черный) в циклах участия не берут.

«Hello, World!» на языке Piet:

Адский язык программирования. И не только потому, что его название это название восьмого круга ада в «Божественной комедии» Данте, а еще и потому, что на этом языке практически невозможно написать нормальную программу. Для чего, собственно, он и был создан Беном Олмстедом в 1998 году.

Структура языка

Дело в том, что Malbolge это машинный язык для интерпретаторов, работающих в троичной системе исчисления.

В интерпритаторе Malbolge имеется 3 регистра — a, c и d.

С — регистр кода, указывает на текущую программу.

D — регистр данных, управляет данными.

А — аккумулятор, также некоторые команды используют его для манипуляции с данными.

Память интерпретатора равна 59049 (3в10 степени) ячеек с числами из 10 троичных цифр. При этом ячейки с адресом от 0 до 59048 имеют соответствующие значения (от 0 до 59048). Когда программа запускается, начало памяти заполняется ASCII-кодами символов ее исходного кода. Игнорируются пустыне пространства (пробел, табуляция, перенос на новую строку). Остаток памяти заполняется, использую операцию crazy, которая является аналогом побитовых операций — она применяется к двум соответствующим цифрам.

Значение
([c] + c) % 94
Инструкция Пояснение
4 mov c, [d] Переход к ячейке с номером [d]
5 out a Вывод значения ASCII-символа с кодом a % 256 на экран
23 in a Ввод ASCII-символа в a. Разделитель строк имеет код 10. Конец файла — 59048
39 rotr [d]
mov a, [d]
Сдвигает значение [d] на одну троичную цифру вправо (0002111112 превращается в 2000211111). Результат сохраняется в [d] и в a
40 mov d, [d] Копирование значения из [d] в d
62 crz [d], a
mov a, [d]
Произвести операцию crazy со значениями [d] и a. Результат сохраняется в [d] и в a
68 nop Ничего не делает
81 end Конец программы

Любые другие значения ничего не делают. Они не разрешены при загрузке программы, но разрешены после этого.

После выполнения очередной инструкции производится ее шифрование с использование таблиц перевода:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *