Assembler

  • ХабрахабрФото Релейный компьютер, телетайп и интересный алгоритм игры в крестики-нолики

    Релейный компьютер, телетайп и интересный алгоритм игры в крестики-нолики

    Крестики-нолики – классическая игра, которую наверное пытался написать каждый. При этом программы иногда получаются довольно запутанные, несмотря на простоту правил. Электромагнитные реле – классическая элементная база для компьютеров и калькуляторов. Они тёплые, ламповые и прикольно щёлкают. Если добавить к этому телетайп, то получится игровая консоль в стиле 1940х. Релейный компьютер Релейный компьютер я делаю уже давно. В нём 8 регистров…

    Читать далее »
  • ХабрахабрФото Пишем микро-shellcode в формате ELF вручную

    Пишем микро-shellcode в формате ELF вручную

    На Хабре уже не раз публиковались статьи про устройство формата ELF и написание файлов в таком формате вручную, но я не считаю лишним опубликовать и свой вариант решения этой задачи. В результате получился файл, вызывающий /bin/sh и занимающий всего 76 байт (что на 8 байт меньше, чем сумма длин заголовков ELF, необходимых для запуска). Постановка задачи Начну с того, откуда…

    Читать далее »
  • ХабрахабрФото Немного об оптимизации кода путем «свертки»

    Немного об оптимизации кода путем «свертки»

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

    Читать далее »
  • ХабрахабрФото [Перевод] В {n} раз быстрее Си

    [Перевод] В {n} раз быстрее Си

    Иногда человек может обнаружить такие возможности оптимизации, которые не видит компилятор. В этой статье мы начнём с цикла, сгенерированного из кода Си с помощью clang, и скорректируем его разными способами, попутно измеряя прирост в скорости. Эта статья публиковалась на главной странице HackerNews, и к её обсуждению вы можете присоединиться здесь. Дисклеймер: я не эксперт по оптимизациям. По факту мой опыт…

    Читать далее »
  • ХабрахабрФото Будущее программирования с помощью ИИ — первые примеры

    Будущее программирования с помощью ИИ — первые примеры

    Научно-техническая революция стимулирует спрос на вычисления. Последние полвека прогресс шёл в основном за счёт совершенствования железа. Но чипы приближаются к физическому пределу. Чтобы не снижать темпы развития, нужно улучшать программный код, повышая производительность вычислений. Требуют оптимизации в том числе базовые алгоритмы, такие как сортировка или хэширование, которые выполняются каждый день триллионы раз [1]. В то же время машинное обучение (нейросети)…

    Читать далее »
  • ХабрахабрФото [Перевод] Мой первый супероптимизатор

    [Перевод] Мой первый супероптимизатор

    Настало время для очередного бесполезного проекта. Возможно ли для любого отдельно взятого фрагмента кода найти абсолютно оптимальный вариант, который будет давать тот же вывод? Несколько лет назад я наткнулся на этот принцип, называемый супероптимизация. Он не практичен, но сама его идея засела у меня в голове. Смысл такой: сгенерировать все возможные пермутации инструкций кода и протестировать каждую полученную программу на…

    Читать далее »
  • ХабрахабрФото Дизассемблер 6502 (nes/famicom/dendy) на php

    Дизассемблер 6502 (nes/famicom/dendy) на php

    <?php return [ '69' => [ 'ADC #$argument', 2 ], '65' => [ 'ADC $argument', 2 ], '75' => [ 'ADC $argument,X', 2 ], '6D' => [ 'ADC $argument', 3 ], '7D' => [ 'ADC $argument,X', 3 ], '79' => [ 'ADC $argument,Y', 3 ], '61' => [ 'ADC ($argument,X)', 2 ], '71' => [ 'ADC ($argument),Y', 2 ], '29'…

    Читать далее »
  • ХабрахабрФото Зачем в Switch SDK три разных sin?

    Зачем в Switch SDK три разных sin?

    Работая в компании Gaijin несколько лет назад, мне довелось поучаствовать в портировании пары игр компании на консоль Nintendo Switch, тогда вовсю завоевывающую новые рынки. Для меня это стало первым крупным проектом на этой платформе. А с учетом, что ни команда, ни разработчик движка с платформой, системой сборки и вообще экосистемой Нинтендо знакомы не были, то все грабли приходилось искать и…

    Читать далее »
  • ХабрахабрФото Альбом биперной музыки Ear Shaver и история его создания

    Альбом биперной музыки Ear Shaver и история его создания

    Этой весной выпустил свой новый альбом биперной музыки для ZX Spectrum 48K — Ear Shaver. Послушать без дополнительных прелюдий можно в прикреплённом видео или на разнообразных музыкальных площадках. Отвступление Теперь нужно пояснить, что вы только что видели и слышали. В начале 1980-х годов компьютеры только начали шагать по планете и заходить в каждый дом. Чтобы завоевать массовый рынок, производители пытались…

    Читать далее »
  • ХабрахабрФото Профилирование, ассемблер и все-все-все

    Профилирование, ассемблер и все-все-все

    Привет, сегодня будет объёмная и обстоятельная статья о низкоуровневом профилировании и диагностике производительности. Многократно в комментариях к докладам и статьям пользователи высказывали пожелание увидеть не просто перечисление шаблонов "как нужно" и "как не нужно", а целостную историю. Поэтому вот вам статья про конкретный кейс и его историю :). Не удивляйтесь, что начнём мы с JPA, хотя казалось бы где оно…

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


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