Сообщения в bot.habr.rss

[Перевод] Заселяем привидение в старый телевизор

Опубликовано: Sat, 23 Aug 2025 12:00:39 GMT
Канал: Все статьи подряд / Raspberry Pi / Хабр

В этом году пришла идея: воплотить классическое клише из фильмов ужасов — скримера с зеркалом. Помните те сцены, где отражение внезапно показывает монстра, призрака или что-то подобное? Камера, Raspberry Pi, и библиотека OpenCV могут напугать кого угодно. Не верите?! Поскольку на телевидение не пускают (и правильно делают), создадим жуткую видеотрансляцию в старом черно-белом телевизоре. Система активируется при обнаружении лица или глаз.Когда Raspberry Pi замечает лицо, он включает телевизор и выводит на него живое изображение с камеры. Как только человек отворачивается, на заднем плане появляется призрак (с помощью технологии вычитания фона). Несчастный снова смотрит на экран, видит фантома, радуется, хватается за сердце и оборачивается во второй раз — призрак исчезает. Через несколько секунд телевизор выключается, и цикл начинается заново.Осторожно, под катом много картинок! Читать далее]]>

https://habr.com/ru/companies/selectel/articles/939984/
BotHabr to All (2025-09-22 12:27:27) [ссылка]

Indoor-локация без дополнительных датчиков: Wi-Fi как единственный источник данных

Опубликовано: Sun, 21 Sep 2025 17:46:14 GMT
Канал: Все статьи подряд / Raspberry Pi / Хабр

Навигация внутри помещений сложна из-за неточной работы GPS. Вместо дорогих маячков можно использовать уже существующие Wi-Fi роутеры, измеряя мощность сигнала для определения местоположения. В Сколтехе мы исследовали такую систему для поиска людей на кампусе, сталкиваясь с проблемами конфиденциальности и ограничениями iOS. Идею удалось применить к личному транспорту: на скейт или самокат можно поставить маячок, который отправляет уведомления о перемещении или пропаже, облегчая поиск и контроль. Читать далее]]>

https://habr.com/ru/articles/949142/
BotHabr to All (2025-09-22 12:27:26) [ссылка]

USBODE: самодельный аналог «кармана» IODD / Zalman

Опубликовано: Wed, 17 Sep 2025 13:36:45 GMT
Канал: Все статьи подряд / Raspberry Pi / Хабр

Часто ли вам приходится переустанавливать операционную систему? Обычный пользователь на этот вопрос, скорее всего, ответит что-то вроде: «раз в пару лет». Кто-то вообще годами сидит на одной и той же, собирая всяческие глюки. Но есть и те, кто делает эту операцию каждый день. Например, системные администраторы и инженеры ЦОДов.Именно для этой категории людей южнокорейская компания IODD придумала очень удобные устройства — эмуляторы оптического привода (их еще часто называют «карманами»). Стоит лишь залить нужные ISO-образы дисков в специально выделенную директорию, и девайс сможет прикидываться CD/DVD-приводом, подключенным по USB. Такие гаджеты делает и Zalman, а на Хабре мы уже писали про их особенности.Во всем этом есть только одна проблема. Цена хорошего «кармана» сейчас от 80 до 100 $. Да и найти его довольно сложно — нишевая штука. Но если вы обладатель Raspberry Pi Zero W, то его можно превратить в такой девайс, к тому же более продвинутый и кастомизируемый. Читать далее]]>

https://habr.com/ru/companies/ru_mts/articles/947660/
BotHabr to All (2025-09-22 12:27:26) [ссылка]

Обучающий проект на одноплатнике — изучение embedded-программирования. Проект первый — простая метеостанция

Опубликовано: Sat, 30 Aug 2025 03:34:08 GMT
Канал: Все статьи подряд / Raspberry Pi / Хабр

Если Вы хотите начать свой Путь в изучении Мира автоматики и телеметрии, начать практиковать Embedded-разработку, т.е. разрабатывать встраиваемые программно-аппаратные решения и собственные системы управления и сбора данных или же если Вы в этом дока и хотите найти готовое решение и материал для занятия со своими детьми, то эта статья для Вас. А ещё если Вы искали прикольные практические проекты с которыми хотели бы начать работать с одноплатными компьютерами даже просто как повод для изучения Linux, то этот материал так же Вам подходит.Связка одноплатного компьютера с различными устройствами в виде датчиков и исполнительных механизмов является отличным образовательным инструментом, позволяющим изучать работу с датчиками, интерфейсами и осваивать программирование. А работа с одноплатными компьютерами открывает огромный интересный Мир embedded-программирования и вообще разработки, в т.ч. работы с Linux, создания собственных проектов автоматизации и систем сбора данных и погружения в IT отрасль. Читать далее]]>

https://habr.com/ru/articles/942192/
BotHabr to All (2025-09-22 12:27:26) [ссылка]

Любителям x86-64 assembler посвящается: DIY волокна в C++

Опубликовано: Wed, 14 May 2025 21:18:59 GMT
Канал: Все статьи подряд / Assembler / Хабр

Нас ждёт мозговыносящая смесь 64/32-битного ассемблера и старого-доброго C++. Мы сделаем собственную реализацию... Волокон (fibers) без вызова Win API и звонков в службу спасения. Читать далее]]>

https://habr.com/ru/articles/908406/
BotHabr to All (2025-09-22 12:27:24) [ссылка]

Решение задачи с Route 256 на goalng

Опубликовано: Sun, 11 May 2025 16:21:39 GMT
Канал: Все статьи подряд / Assembler / Хабр

В этой статье разбирается решение задачи «Гистограммы» с контеста Route 256 от Ozon с помощью SIMD.Условие задачиГистограммой является массив, каждый элемент которого указывает высоту столбика на соответствующей позиции. Две гистограммы считаются совпадающими, если при совмещении одной гистограммы с другой гистограммой, повёрнутой на угол 180°, получается ровный прямоугольник без наложений и пропусков. Читать далее]]>

https://habr.com/ru/articles/908384/
BotHabr to All (2025-09-22 12:27:24) [ссылка]

Векторы в RISC-V на практике: вычисление softmax

Опубликовано: Thu, 05 Jun 2025 09:50:44 GMT
Канал: Все статьи подряд / Assembler / Хабр

С 10 по 14 апреля 2025 года прошел первый онлайн RISC-V хакатон, организованный Ассоциацией RISC-V. Участникам на выбор давались 2 задачи. Одна задача от Codasip -доработать программу и кастомный процессор для вычисления LLM трансформера. Другая от Andes - улучшить вычисление функции softmax. Для демонстрации работы векторного расширения RISC-V задача с softmax мне показалась более подходящей.Интересно было изучить, как в процессорах реализуется вычисление нелинейных функций, как например экспоненциальная функция, нужная для softmax. Читать далее]]>

https://habr.com/ru/articles/915866/
BotHabr to All (2025-09-22 12:27:23) [ссылка]

[Перевод] Как ускорить сложение и вычитание при помощи 2^51

Опубликовано: Thu, 05 Jun 2025 07:31:20 GMT
Канал: Все статьи подряд / Assembler / Хабр

Помните, как долго выполняется сложение на бумаге? ¹¹ ¹ 6876 + 3406 ------ 10282Начиная с единиц, мы складываем 6 + 6 = 12, записываем 2 и переносим 1. Затем пошагово двигаемся влево, пока складываемые разряды не закончатся.При реализации сложения больших чисел (например, от 264 и выше) обычно пишут код, похожий на этот алгоритм. Любопытно здесь то, что существует простой трюк, позволяющий существенно ускорить этот процесс на современных CPU.Но сначала я задам вопрос: почему сложение столбиком мы начинаем с самого младшего разряда? Почему бы не начать слева?Дело, разумеется, в переносе. Мы не можем точно знать, каким будет текущий разряд числа, пока не выполним все сложения справа от этого разряда. Читать далее]]>

https://habr.com/ru/articles/915800/
BotHabr to All (2025-09-22 12:27:23) [ссылка]

[Перевод] Пишем на C самоизменяющуюся программу x86_64

Опубликовано: Wed, 28 May 2025 13:01:37 GMT
Канал: Все статьи подряд / Assembler / Хабр

«Зачем вообще писать программу, меняющую код в процессе выполнения? Это же ужасная идея!»
Да, всё так и есть. Но это и хороший опыт. Такое делают только тогда, когда хотят что-то исследовать, или из любопытства.
Самоизменяемые/самомодифицируемые программы не обладают особой полезностью. Они усложняют отладку, программа становится зависимой от оборудования, а изучение кода превращается в очень утомительный и запутанный процесс, если только вы не опытный разработчик на ассемблере. Единственный разумный сценарий применения самоизменяемых программа в реальном мире — это механизм маскировки зловредного ПО от антивирусов. Моя цель исключительно научна, поэтому ничем подобным я заниматься не буду.
Предупреждение: в этом посте активно используется язык ассемблера x86_64, в котором я ни в коем случае не являюсь специалистом. Для написания статьи мне пришлось изучать приличный объём материалов, и, возможно (почти наверняка), в ней есть ошибки. Читать дальше →]]>

https://habr.com/ru/companies/ruvds/articles/913546/
BotHabr to All (2025-09-22 12:27:23) [ссылка]

Об ошибках округления и способах борьбы с ними

Опубликовано: Thu, 26 Jun 2025 12:15:13 GMT
Канал: Все статьи подряд / Assembler / Хабр

Почему при сложениии одинаковых чисел в разном порядке получаются разные результаты? Как мининмизировать ошибки округления или избавиться от них совсем? Читать далее]]>

https://habr.com/ru/articles/922198/
BotHabr to All (2025-09-22 12:27:22) [ссылка]

[Перевод] Не стоит пугаться машинного кода

Опубликовано: Sun, 15 Jun 2025 09:01:01 GMT
Канал: Все статьи подряд / Assembler / Хабр

Моим первым языком программирования был ActionScript. Написание кода для Macromedia Flash максимально далеко от голого железа, и эта специфика работы глубоко засела в моём сознании. В результате меня интересовали преимущественно высокоуровневые языки для веб-программирования. Низкоуровневые же казались непостижимыми. Со временем я постепенно из разных источников узнавал о них всё больше, но это моё убеждение оставалось прежним. Низкоуровневые языки пугают, и машинный код подтверждал это наглядно. Когда я обращался к Google с запросом «понятный машинный код», то результат выдачи чаще представлял нечто пугающее и отталкивающее, нежели полезное для обучения. В конечном итоге я решил, что для достижения поставленных целей мне этот страх необходимо преодолеть. И результат приложенных усилий оказался для меня неожиданным. Машинный код вовсе не страшен. Если вы можете обеспечить, чтобы документ JSON соответствовал схеме JSON, то без проблем сможете писать машинный код. Читать далее]]>

https://habr.com/ru/companies/ruvds/articles/917202/
BotHabr to All (2025-09-22 12:27:22) [ссылка]

QapDSL — декларативное описание AST и парсеров для C++

Опубликовано: Thu, 05 Jun 2025 14:19:06 GMT
Канал: Все статьи подряд / Assembler / Хабр

QapDSL — декларативное описание AST и парсеров для C++
QapDSL — это специализированный язык (DSL), который позволяет описывать абстрактные синтаксические деревья (AST) и правила их разбора для языков программирования, прежде всего C++. Такая формализация помогает автоматизировать построение парсеров, генерацию кода, анализ исходников и даже рефакторинг.

Зачем нужен QapDSL?

Компактно и наглядно описывать структуру и грамматику языка.
Автоматически генерировать C++-структуры, парсеры, сериализаторы и визиторы.
Ускорять эксперименты с языками, создавая прототипы компиляторов и анализаторов.
Упрощать анализ и рефакторинг сложных языков, в т.ч. C++.

Пример QapDSL-описания
Рассмотрим, как описывается объявление класса C++ на QapDSL:
t_class{
string keyword;
t_sep sep0;
string name;
t_sep sep1;
TAutoPtr parents;
t_sep sep2;
TAutoPtr body;
t_sep sep3;
{
M+=go_any_str_from_vec(keyword,split("struct,class,union",","));
O+=go_auto(sep0);
M+=go_str(name);
O+=go_auto(sep1);
O+=go_auto(parents);
O+=go_auto(sep2);
O+=go_auto(body);
O+=go_auto(sep3);
M+=go_const(";");
}
} Читать дальше →]]>

https://habr.com/ru/articles/916006/
BotHabr to All (2025-09-22 12:27:22) [ссылка]

Ускоряем валидацию UTF-8 в 10 раз (>10 ГБ/с): реализация алгоритма Lemire-Keiser на Go с ARM NEON

Опубликовано: Mon, 30 Jun 2025 05:07:59 GMT
Канал: Все статьи подряд / Assembler / Хабр

UTF-8 валидация — одна из базовых операций при работе с текстом, которая выполняется миллионы раз в секунду в современных приложениях. Стандартная реализация в Go, хоть и корректная, далека от оптимальной по производительности. В этой статье расскажу, как мне удалось ускорить валидацию UTF-8 в 10 раз, используя SIMD‑инструкции ARM NEON и алгоритм из статьи «Validating UTF-8 In Less Than One Instruction Per Byte» Джона Кейзера и Дэниела Лемира. Читать далее]]>

https://habr.com/ru/articles/923242/
BotHabr to All (2025-09-22 12:27:21) [ссылка]

О векторном вычислении экспоненциальной функции

Опубликовано: Mon, 30 Jun 2025 01:54:23 GMT
Канал: Все статьи подряд / Assembler / Хабр

Как вычислить экспоненциальную функцию быстро и с минимальной погрешностью? Пишем векторизованный код. Читать далее]]>

https://habr.com/ru/articles/923234/
BotHabr to All (2025-09-22 12:27:21) [ссылка]

Цифровой фильтр без умножения

Опубликовано: Sat, 28 Jun 2025 08:15:55 GMT
Канал: Все статьи подряд / Assembler / Хабр

Представлен цифровой фильтр без использования явной аппаратной или программной операции умножения, выполненный на основе двоичных сдвигов. Имеет дискретный ряд АЧХ, ФЧХ, при этом, эффективно реализуется на простейших контроллерах. Читать далее]]>

https://habr.com/ru/articles/922794/
BotHabr to All (2025-09-22 12:27:21) [ссылка]

Taming Hard Faults in Zephyr OS: Практическое руководство для embedded-разработчиков

Опубликовано: Sat, 05 Jul 2025 18:53:36 GMT
Канал: Все статьи подряд / Assembler / Хабр

🚨 Что такое Hard Fault простыми словамиHard Fault — это критическая ошибка процессора. Проще говоря, это ситуация, когда микроконтроллер встречает что-то настолько «невозможное» для себя, что не может продолжить выполнение программы.Типичный пример — попытка обратиться к памяти, которой не существует, или выполнение запрещённой инструкции.Когда это происходит, процессор сразу передаёт управление специальному обработчику — Hard Fault Handler. Читать далее]]>

https://habr.com/ru/articles/925298/
BotHabr to All (2025-09-22 12:27:20) [ссылка]

[Перевод] Как я обнаружил древнюю пасхалку в Power Mac G3

Опубликовано: Fri, 04 Jul 2025 13:01:44 GMT
Канал: Все статьи подряд / Assembler / Хабр

Недавно залез в ROM оригинального Power Macintosh G3 и случайно обнаружил там пасхалку, о которой до этого ещё нигде не писали. Началось с того, что одним воскресным утром я решил заглянуть в файл-шаблон ROM для Mac с помощью программы HEX Fiend Эрика Хармана. Меня интересовало, какие ресурсы хранятся в постоянной памяти Power Mac G3. Эта ROM использовалась в моделях Beige, Mini Tower и всех G3, выпускавшихся с 1997 по 1999 годы.Пишу я эту статью в середине 2025, и мне не верится, что сегодня Power Mac G3 уже больше 27 лет. Невероятно! Читать далее]]>

https://habr.com/ru/companies/ruvds/articles/923880/
BotHabr to All (2025-09-22 12:27:20) [ссылка]

FastCGo: как мы ускорили вызов C-кода в Go в 16,5 раза

Опубликовано: Thu, 03 Jul 2025 05:58:40 GMT
Канал: Все статьи подряд / Assembler / Хабр

В Deckhouse Prom++ мы переписали ядро хранения и обработки горячих данных на C++, при этом вся оркестрация и периферия остались в Prometheus на Go, что позволило сохранить полную совместимость с Prometheus. Для частых вызовов кода C++ мы использовали механизм CGo, однако первые тесты показали, что производительность CPU практически не улучшилась из-за его медлительности. В итоге мы переписали CGo, создав собственный механизм вызова.В статье разберём, что такое CGo и почему он такой медленный, сделаем простейший собственный механизм CGo-вызова и доведём этот механизм до полноценного решения. Читать далее]]>

https://habr.com/ru/companies/flant/articles/923912/
BotHabr to All (2025-09-22 12:27:20) [ссылка]

AsmX G3: Записки из лаборатории. Что мы тестируем прямо сейчас

Опубликовано: Sun, 20 Jul 2025 06:20:53 GMT
Канал: Все статьи подряд / Assembler / Хабр

Прежде чем технология изменит мир, она проходит через тысячи часов испытаний в лаборатории. Мы открываем двери нашего R&D отдела и показываем, над чем инженеры AsmX Foundation работают прямо сейчас. Улучшенная диагностика ошибок, новый синтаксис и первые шаги к полноценным вызовам библиотечных функций. Загляните в будущее компилятора. Войти в лабораторию]]>

https://habr.com/ru/articles/929264/
BotHabr to All (2025-09-22 12:27:19) [ссылка]

I always come back: Анонс AsmX G3 — Новый этап в программировании

Опубликовано: Thu, 17 Jul 2025 08:12:33 GMT
Канал: Все статьи подряд / Assembler / Хабр

Привет, читатель! Ты видишь это лицо и надпись "I ALWAYS COME BACK"? Это не просто мем для хайпа — это моё обещание. И я его сдержал.Я вернулся, чтобы анонсировать AsmX G3 — новое поколение моего проекта, которое вот-вот перевернёт твоё представление о низкоуровневом программировании. Это событие, частью которого я хочу тебя видеть. 🚀 Прыгнуть в будущее]]>

https://habr.com/ru/articles/928538/
BotHabr to All (2025-09-22 12:27:19) [ссылка]

Оптимизация языковой модели Mamba для выполнения на CPU

Опубликовано: Sun, 06 Jul 2025 20:07:05 GMT
Канал: Все статьи подряд / Assembler / Хабр

Как оптимизировать модель Mamba для выполнения на CPU? Ускоряем код в 20 раз по сравнению с PyTorch, нарушая в процессе все правила оптимизации. Читать далее]]>

https://habr.com/ru/articles/925460/
BotHabr to All (2025-09-22 12:27:19) [ссылка]

Своя ОС?

Опубликовано: Tue, 29 Jul 2025 19:12:33 GMT
Канал: Все статьи подряд / Assembler / Хабр

Дарова! Сегодня я поделюсь с вами опытом, как я пытался написать собственную ОС и, что из этого вышло. Запасайтесь чайком с печеньками и присаживайтесь поудобнее! Пора окунуться в 16ти битный мир... Читать далее]]>

https://habr.com/ru/articles/921490/
BotHabr to All (2025-09-22 12:27:18) [ссылка]

AsmX G3: От высокоуровневого ассемблера к нативному коду. Разбираем компилятор ZGEN

Опубликовано: Sat, 26 Jul 2025 15:00:47 GMT
Канал: Все статьи подряд / Assembler / Хабр

Мы не просто пишем код. Мы строим компиляторы, которые строят код. AsmX G3 — это не обновление, это переосмысление с первых принципов. Приготовьтесь к глубокому техническому погружению в архитектуру нашего нового компилятора ZGEN, где мы вскроем каждый компонент, от ядра до сборщика ELF, и покажем инженерные решения, которые определяют будущее системного программирования. Читать полный технический разбор]]>

https://habr.com/ru/articles/929794/
BotHabr to All (2025-09-22 12:27:18) [ссылка]

Код сквозь хейт: Как продолжать творить, когда сообщество против

Опубликовано: Mon, 21 Jul 2025 08:11:37 GMT
Канал: Все статьи подряд / Assembler / Хабр

Это моя пятая попытка диалога с сообществом. Четыре предыдущие закончились баном. Но это не жалоба. Это деконструкция системы, которая наказывает за отклонение от нормы. Мы разберем, почему «низкий технический уровень» стал оружием конформизма и как продолжать строить, когда твой проект — системная аномалия. Понять логику отторжения]]>

https://habr.com/ru/articles/929462/
BotHabr to All (2025-09-22 12:27:18) [ссылка]

Барьеры памяти «Golang»

Опубликовано: Fri, 01 Aug 2025 15:02:02 GMT
Канал: Все статьи подряд / Assembler / Хабр

Данная статья направлена на повышение уровня понимания принципов работы барьеров памяти, которые лежат в основе атомарных операций. Она не описывает историю и первопричины появления данного механизма, а служит объяснением основных подходов. Идеей было донести простыми словами и примерами механизмов работы барьеров памяти, поэтому в данной статье нет углубления в синтаксис ассемблер команд или архитектур процессоров. Читать далее]]>

https://habr.com/ru/articles/930864/
BotHabr to All (2025-09-22 12:27:17) [ссылка]

Занимательная некромантия 01H: ломаем программу под MS-DOS

Опубликовано: Thu, 31 Jul 2025 15:36:26 GMT
Канал: Все статьи подряд / Assembler / Хабр

Давным-давно, когда F11 и F12 еще не придумали, F1-F10 располагались слева, Ctrl жил на месте CapsLock, а IBM продавала компьютеры с гарантией на 90 дней, владельцы компьютеров работали в MS-DOS. Процессор еще не знал, что такое защищенный режим, память не делилась на области пользователя и ядра, виртуальной памяти не было, как не было и многозадачности. MS-DOS программа на счет "раз" нарушала работу ядра и компьютер приходилось перезагружать. Программы скромно умещались в 64 Кб, а, если превышали это ограничение, жизнь их становилась труднее.Дизассемблируем 16-битную программу: InDuLgEo V3-B горит пламенем на экране, печатает текст и трезвонит, как старый телефон. Вперед к 16 битам]]>

https://habr.com/ru/articles/932948/
BotHabr to All (2025-09-22 12:27:17) [ссылка]

AsmX G3: Архитектура кодировщика ZGEN. Как hwm генерирует машинный код amd64

Опубликовано: Tue, 29 Jul 2025 23:15:57 GMT
Канал: Все статьи подряд / Assembler / Хабр

Большинство компиляторов — это монолитные черные ящики, унаследованные из прошлого. Мы отвергли этот путь. Мы разбираем архитектуру x86_64 до "первых принципов", чтобы понять, как на самом деле работает кремний. В этой статье мы вскрываем капот нашего компилятора ZGEN и его "фабрики машинного кода" — hwm. Никакой магии. Только чистая, детерминированная инженерия, которая превращает ассемблер в исполняемые биты. Перейти к полному техническому разбору]]>

https://habr.com/ru/articles/932248/
BotHabr to All (2025-09-22 12:27:17) [ссылка]

Операционная система от А до Я: Таймер и HAL

Опубликовано: Thu, 07 Aug 2025 13:22:51 GMT
Канал: Все статьи подряд / Assembler / Хабр

Последние несколько вечеров я занимаюсь написанием простенькой операционной системы с микроядерной архитектурой. Зная, что такое занятие имеет не только исследовательский смысл, но и может стать кому то темой для курсовой или дипломной работы, я решил поделиться матчастью и показать, как всё устроено. OSdev был и остаётся высшим пилотажем в мире программирования, и я готов помочь. Читать далее]]>

https://habr.com/ru/articles/935058/
BotHabr to All (2025-09-22 12:27:16) [ссылка]

Как воссоздать код DOS-игры: пошаговое дизассемблирование ретро-игр

Опубликовано: Wed, 06 Aug 2025 08:22:39 GMT
Канал: Все статьи подряд / Assembler / Хабр

Устаревшие технологии не исчезают. Они просто уходят в подполье: в архивы, на дискеты, в память тех, кто помнит, как это было. DOS-игры не просто программы. Это произведения инженерного искусства, созданные в эпоху, когда каждый байт имел значение, а каждый такт процессора, вес. Они работали на железе, которое сегодня кажется примитивным, но при этом умели то, что многим современным системам не под силу: дышать.Моя первая игра была на дискете. Она называлась Syndicate (1993, Bullfrog Productions), и я не понимал, как она работает. Я видел, как агенты стреляют, как взрываются здания, как звучит саундтрек, но не имел ни малейшего представления, что за этим стоит.Я знал C. Я знал, что такое переменные, циклы, указатели. Но я не мог объяснить, как в игре реализован путь юнита, как обрабатывается урон, как генерируется уровень. Тогда я не понимал кода, но код уже управлял мной.Спустя годы я вернулся к этим играм не как игрок, а как исследователь. И понял: они — лучшая школа программирования, которую только можно себе представить.Современные игры скрывают свою архитектуру за слоями абстракций: виртуальные машины, движки, фреймворки. Чтобы понять, как они работают, нужно разобраться в десятках технологий.DOS-игры - другое дело: нет виртуальных машин; нет сборщиков мусора; нет драйверов. Есть только процессор, память и код, написанный на C/C++ или ассемблере. Это делает их идеальной школой для изучения реального программирования.Дизассемблирование таких игр — это не про взлом. Это археология программирования: вы не ломаете систему, а восстанавливаете её логику по обломкам машинного кода, как археолог, собирающий мозаику из черепков. Исследовать]]>

https://habr.com/ru/articles/934490/
BotHabr to All (2025-09-22 12:27:16) [ссылка]

[Перевод] Программа «Hello World» на машинном коде под DOS

Опубликовано: Mon, 04 Aug 2025 20:37:39 GMT
Канал: Все статьи подряд / Assembler / Хабр

Как-то раз я послушал следующее интересное выступление (по-немецки): ссылкаВ нём разобрано, как написать программу «hello world» для 64-разрядного дистрибутива Linux в шестнадцатеричном редакторе. Ассемблер здесь не используется, программа пишется непосредственно на машинном коде. Правда, в ней есть издержки на использование ELF.Мне понравилась такая идея, и я решил повторить такой опыт, но немного в иной форме — а именно под 16-разрядной DOS в реальном режиме. У меня должен был получиться файл в формате COM, а не EXE, так как (на данном этапе) меня интересовал не столько формат файла, сколько кодировка инструкций. В вышеупомянутой лекции, если честно, не сообщается почти никаких подробностей о том, как именно перейти от ассемблерного кода к машинному — поскольку в случае разбора этих тем лекция, пожалуй, растянулась бы на несколько часов. Но здесь я всё разберу подробно, и при этом собираюсь пользоваться только документацией lntel, а также дизассемблировать код в целях верификации.Также мы коротко поговорим о сегментации.В качестве шестнадцатеричного редактора на этот раз воспользуемся hexedit. Читать далее]]>

https://habr.com/ru/articles/934032/
BotHabr to All (2025-09-22 12:27:16) [ссылка]