Assembler

  • ХабрахабрФото Area 5150 — демо для PC XT/CGA и музыка для PC Speaker

    Area 5150 — демо для PC XT/CGA и музыка для PC Speaker

    В 2015 году демогруппы CRTC и Hornet изменили представление о возможностях PC XT и CGA, создав нашумевшее демо 8088 MPH (публикация на Хабре). Годы спустя они собрались с силами и наконец-то выпустили своё свежайшее творение на ту же тему — Area 5150. Оно было выставлено на демопати Evoke 2022 и заняло там первое место в категории демо для альтернативных платформ…

    Читать далее »
  • ХабрахабрФото Исследование возможностей оптимизации ПО на примере хеш-таблицы

    Исследование возможностей оптимизации ПО на примере хеш-таблицы

    Данная работа была выполнена как учебная в ходе курса МФТИ «Введение в эмуляцию вычислительных систем, компиляторные технологии и промышленное программирование». Цель Изучить различные реализации хеш-функций, изучить их дисперсию; исследовать реализацию инфраструктуры хеш-таблицы на предмет возможных оптимизаций, внедрение найденных решений, вычисление коэффициента полезного прироста производительности ассемблерной оптимизации. В работе используются Язык программирования C\C++; набор компиляторов GCC; инструмент callgrind утилиты valgrind; инструмент визуализации…

    Читать далее »
  • ХабрахабрФото О разнице между лямбдами и обычными функциями и о имплементации лямбд в некторых языках программирования

    О разнице между лямбдами и обычными функциями и о имплементации лямбд в некторых языках программирования

    Цель настоящей статьи - изучить лямбда функции: чем они отличаются от обычных функций и изучить, как они реализованы в С++, Python 3 и Java. На протяжении этой статьи я буду использовать godbolt.org, чтобы компилировать код и изучать машинный код или байт код. Я думаю, что при чтении статьи может быть удобнее смотреть не на приведённый машинный код в статье, а…

    Читать далее »
  • ХабрахабрФото Неестественное выравнивание

    Неестественное выравнивание

    Вот уже 10 лет прошло, как я переводил свои средства программирования в среду x86-64 для Windows 7. А как будто вчера было! Поскольку тогда многие особенности этой среды были для меня внове, они вызывали недоумение. Вот типичный пример. Моя программа вызывала тривиальную функцию WinAPI с названием InternetGetConnectedState. Ниже для иллюстраций я буду использовать собственный маленький интерактивный отладчик, который автоматически вставляется…

    Читать далее »
  • ХабрахабрФото Разработка BIOS на языках высокого уровня

    Разработка BIOS на языках высокого уровня

    Ничего лишнего: материнская плата, видеокарта и ROM-BIOS Меня давно волнует вопрос, как подступиться к разработке на голом железе, на чистом си. Хотелось понять, каким же образом идёт запуск BIOS, u-boot, grub и прочих первичных загрузчиков. Ведь необходимо перейти от ассемблера к тёплому ламповому си и соблюсти условие, собрать всё это в линукс любимым компилятором gcc. Хотя я и имею достаточный…

    Читать далее »
  • ХабрахабрФото Лабораторный таймер: импортозамещение из подручных материалов

    Лабораторный таймер: импортозамещение из подручных материалов

    Вводная Мне понадобился простой программируемый таймер, он же реле времени. Простая штуковина, которая в указанное время замыкает контакты. Одним словом, ничего сложного. Вот только с началом санкций даже такое простое лабораторное оборудование купить стало невозможно. Вот хороший пример: http://www.optimum-lab.ru/product/tajmer-laboratornyj/. Отличное лабораторное устройство, но как почти прямо пишет продавец - купить его сейчас не так и просто. Другой случай: https://www.chipdip.ru/product/at8n-24-240v-ac-dc. Не…

    Читать далее »
  • ХабрахабрФото Демосцена на релейном компьютере

    Демосцена на релейном компьютере

    Какой компьютер без демосцены? Обратимся к классике от @Manwe_SandS @frog: До моего визита на Assembly'99 я каждый pаз удивлялся pезультатам голосования на заpубежных demo party. Мне было непонятно, как столько людей могут отдавать голоса за pаботы состоящие из тупой (я пpошу пpощения, но это именно так) последовательности эффектов - плазмы, туннеля, огня, вpащающегося куба (тоpа) и пpочих подобных вещей, не…

    Читать далее »
  • ХабрахабрФото Реверс инжиниринг для самых маленьких на практике

    Реверс инжиниринг для самых маленьких на практике

    Скомпилированное приложение является «чёрным ящиком». Чтобы туда заглянуть, восстановить алгоритм работы применяется реверс‑инжиниринг. Это непростой навык с высоким порогом входа. В статье мы попробуем взять дизассемблер, несложную задачку и пойдём в бой. Материал будет полезен тем, кому хочется с чего-то начать и погрузиться в тему реверса. В ходе нашего погружения разберем, какие инструменты использовать, с какой стороны подходить к решению подобных задач, разберём…

    Читать далее »
  • ХабрахабрФото [Перевод] Процедурная генерация 3D-мешей для интро на 64 КБ

    [Перевод] Процедурная генерация 3D-мешей для интро на 64 КБ

    В предыдущей статье [перевод на Хабре] мы рассказали, как генерируются текстуры в демо H – Immersion. На этот раз мы изучим ещё один важный инструмент для создания демо нужного размера — процедурную геометрию. В частности, поскольку в нашем рендеринге используются традиционные полигоны, мы написали процедурный генератор мешей. Мы покажем, как благодаря тщательно подобранным методикам можно создать разнообразие форм или убедить…

    Читать далее »
  • ХабрахабрФото Симулятор-Отладчик x86-кода

    Симулятор-Отладчик x86-кода

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

    Читать далее »


Кнопка «Наверх»