Рубрика «ассемблер» - 2

❯ Глоссарий

  1. Ассемблер — программа, которая преобразует (транслирует) код, написанный на языке ассемблера в машинный код;

  2. Язык Ассемблера — низкоуровневый язык программирования, где машинный инструкции (числа) заменены на мнемоники (слова) для удобства человека.

  3. Программа — текстовый файл, который содержит в себе код на каком либо из языков программирования;

  4. Процесс — абстракция операционной системы, позволяющая следить и управлять ходом выполнения программы;

❯ Введение: что будет в статье?

Читать полностью »

Как повернуть время вспять и выиграть Assembly с DOS-демкой в 2025-м году. Статья с картинками.

Привет, меня зовут bitl и я из тех, кто в детстве не наигрался с кодингом под DOS, и занимаюсь этим в 2020-х... Впрочем, я об этом уже рассказывал в прошлой статье. Тогда мы разбирались с таким явлением, как "сайзкодинг" в рамках демосцены, и как напрочь откомпилировать себе мозги. Вне зависимости - получилось это у вас, или нет, - сейчас я предлагаю почитать про другие способы.

Читать полностью »

Почему-то не нашёл с первой попытки здесь на Хабре какого-нибудь демо или инструкции по использованию этой старинной, но милой тулы из стандартной поставки DOS. Давайте быстренько это исправим. Как легко догадаться из названия - DEBUG.EXE предполагается использовать для отладки. Мы же напишем в ней несколько коротких ассемблерных программ "с нуля" - это не займет много времени, а притом даст лёгкое ощущение магии!

Читать полностью »

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

Продолжая цикл статей [N1,N2,N3] о демосцене и демосценерских конкурсах, в преддверии Chaos Constructions'2025 хочу рассказать о конкурсе с самыми, пожалуй, свободными правилами - Wild demo. Возможно, узнав о таком конкурсе, кто-то захочет в нём поучаствовать.

Читать полностью »

Длинное вступление

Утренняя работа над второй частью статьи началось не с запаха кофе, а с запаха нафталина, толстым слоем покрывающего микропроцессоры эпохи конца 1970-х годов. В этой знаменитой плеяде такие имена, как Zilog Z80, Motorola 68000, Intel 8086. Все они были выпущены с разницей буквально года два-три, и вполне могут считаться ровесниками.

Первая частьЧитать полностью »

Даже в 2025 году, когда вокруг нейросети, автогенерация кода и IDE с предиктивным интеллектом, работа с редкими микроконтроллерами всё ещё может обернуться настоящим хардкором. Особенно, если речь идёт о «слепой» отладке без отладчика, когда в арсенале только прошивка, HEX-файл и пара байтов на выводе. В этой статье — личный опыт, много хардкора, дизассемблирование вручную и поиск глюка в 2 КБ бинаря.

Читать полностью »

Раз в несколько лет я устраиваю в нашей исследовательской группе челлендж «Напиши медленный код». Цель – написать код с минимально работоспособным количеством инструкций на цикл (IPC) с условием, чтобы этот код выполнялся на заранее подобранном сервере с архитектурой x86.

На первый взгляд, это абсурд! В сущности, так и есть. Однако, есть в этой безумной задаче и некоторая методическая ценность. Инженеры, проектирующие процессоры, прилагают все усилия ради достижения наивысшего возможного IPC… даже для очень неэффективного кода. Так и задумано, что писать код с очень высоким показателем IPC непростоЧитать полностью »

В первой части мы:

  • посмотрим, как работать с памятью и регистрами 8086

  • узнаем, как написать простую программу на ассемблере прямо в отладчике

  • изучим работу механизма прерываний и сделаем демонстрационный пример

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

Примеры в бинарном виде доступны по ссылке https://github.com/galilov/habr/blob/main/asm-8086-galilov.zip.

Что нужно знать перед стартом

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js