Как стать автором
Обновить
76.45

Assembler *

Язык программирования низкого уровня

Сначала показывать
Порог рейтинга

Наткнулся у себя в закладках на статью из 2017 года о создании web-приложения на Ассемблере - https://habr.com/ru/articles/318916/ - и решил напомнить об этом приложении. Для многих это приложение будет необычным вариантом использования Ассемблера, как и для меня.
Вот прямая ссылка на исходники проекта - https://asm32.info/fossil/asmbb/index

Теги:
Рейтинг0
Комментарии0
1

Книга по C и не только

Добрый день. Пару месяцев назад я закончил написание книги и выставляю её в открытый доступ: GitHub

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

Посмотреть .html файл книги можно на GitHub-е. Но он не рендерит MathJax, поэтому лучше скачать файл c-book.html локально. Можно как угодно (в том числе в issues) сообщать мне о нерабочем коде в примерах, опечатках, неправильных утверждениях с моей стороны. Буду также рад увидеть конструктивную критику. Возможно, в ответ на неё, я буду добавлять новые главы в книгу.

(Эта книга абсолютно точно не является рекламой Zig-а.)

Теги:
Всего голосов 22: ↑19 и ↓3+21
Комментарии12
1

31 июля 2020 года влогер MattKC опубликовал видеоролик, в котором попытался уместить игру в QR-коде. В результате он написал вариант «Змейки», которая занимает 2953 байта. Исполняемый файл такого размера возможно уместить в QR-коде, поскольку этот формат кодирует до 3 КиБ данных.

Эксперимент влогера не остался без внимания. Уже 3 августа свой вариант показал Брайан Каллахан. Эта «Змейка» требует всего 2024 байта. Впрочем, вариант MattKC ужимается с помощью Crinkler до 1,4 КиБ.

Дальнейшие эксперименты ушли ниже тысячи, а потом и сотни байтов. В последние месяцы развернулась борьба за каждый байт. В ноябре 2023 года удалось заменить ассемблерную инструкцию и выиграть целый байт. Ещё два байта сэкономили две недели назад за счёт замены jae и xor на adc.

Итоговый вариант — это «Змейка» на 58 байт для Microsoft DOS. Для сравнения: ничего не выполняющая программа на C gcc -Os -w -xc - <<< "main;"на 64-битном Linux займёт 15 776 Б. 58 байт — это немного даже для текстовых данных: хватит на небольшое предложение или последовательность эмодзи по типу «??‍❤️‍?‍????‍♀️??‍❤️‍?‍??».

58-байтная «Змейка»
58-байтная «Змейка»

Конечно, в QR-коде эта игра тоже уместится. Также автор выложил онлайн-демку (управление по стрелкам клавиатуры на ПК или свайпу на мобильных устройствах).

github.com/donno2048/snake

Теги:
Всего голосов 5: ↑5 и ↓0+6
Комментарии3

Копал в поисках хорошего материала — и откопал вот это чудо:

HOMS — Hardware-Oriented Microprocessor Simulator, или аппаратно-ориентированный симулятор микропроцессора. Автор этого образовательного проекта — профессор, написавший две книги в области электроники и программирования:

Github автора.

В первоисточнике о проекте утверждается, что:

  • комплектующие доступны на любом рынке электроники;

  • возможно создавать инструкции ассемблера под свои задачи;

  • HOMS не требует ПК.

Лицензия — CC BY-NC-SA 4.0 DEED.

Полное техническое описание HOMS в PDF.

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Разработчик Элиша Холландер (donno2048) представила игру Snake («Змейка») размером 61 байт, которая написана на ассемблере. Онлайн-версия игры доступна для ознакомления.

Насколько мало 61 байт? Ну, эта строка текста весит более 70 байт.

Теги:
Всего голосов 14: ↑14 и ↓0+14
Комментарии3