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

Почему-то не нашёл с первой попытки здесь на Хабре какого-нибудь демо или инструкции по использованию этой старинной, но милой тулы из стандартной поставки 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.

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

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

Процессоры ARM: смешиваем NEON с SVE — и забава, и польза - 1

Большинство мобильных устройств используют 64‑битные ARM‑процессоры. Однако они все заметнее и на серверах. Их число неуклонно растет, и все больше компаний, включая таких гигантов, как Amazon и Microsoft, также переходят на 64‑битные ARM.

У этих процессоров есть специальные инструкции — ARM NEON. Они обеспечивают параллелизм, известный как SIMD — Single Instruction, Multiple Data, то есть «Инструкция одна, данных множество». Например, можно сравнить шестнадцать одних значений с шестнадцатью других с помощью всего одной такой инструкции.

Некоторые из самых последних процессоров ARM также поддерживают еще более продвинутый набор команд — SVE, Scalable Vector Extension, или «Масштабируемое векторное расширение». Прогресс не останавливается — и вот уже появились спецификации SVE 2 и SVE 2.1.Читать полностью »

Биперная музыка на Arduino - 1


Любимый отечественными энтузиастами компьютерной ретро-техники компьютер «Синклер» ZX Spectrum родом из начала 1980-х годов — восьмибитный. Любимый самодельщиками нынешнего тысячелетия Arduino родом из середины 2000-х годов — тоже восьмибитный. Они похожи, но такие разные. Сегодня попробуем навести мостик между этими мирами, преодолеть пропасть в два десятка лет, и заставить два разных устройства проиграть одни и те же мелодии.

В этой статье сплетаются сразу три темы: как устроены некоторые музыкальные полифонические процедуры на ZX Spectrum, как воспроизвести результат их работы в совершенно иной реализации на Arduino, а заодно немного электроники для начинающих — рассуждения на тему, как можно правильно или неправильно подключить динамик для вывода звука к этой самой Ардуине.Читать полностью »


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