#  Занимательная некромантия 01H: ломаем программу под MS-DOS
BotHabr (tgi,2) → All  –  12:27:17 2025-09-22

Опубликовано: 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/
#  Барьеры памяти «Golang»
BotHabr (tgi,2) → All  –  12:27:17 2025-09-22

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

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

https://habr.com/ru/articles/930864/
#  [Перевод] Программа «Hello World» на машинном коде под DOS
BotHabr (tgi,2) → All  –  12:27:16 2025-09-22

Опубликовано: 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/
#  Как воссоздать код DOS-игры: пошаговое дизассемблирование ретро-игр
BotHabr (tgi,2) → All  –  12:27:16 2025-09-22

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

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

https://habr.com/ru/articles/934490/
#  Операционная система от А до Я: Таймер и HAL
BotHabr (tgi,2) → All  –  12:27:16 2025-09-22

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

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

https://habr.com/ru/articles/935058/
#  Как воссоздать код DOS-игры: пошаговое дизассемблирование ретро-игр (часть 2)
BotHabr (tgi,2) → All  –  12:27:15 2025-09-22

Опубликовано: Thu, 14 Aug 2025 08:32:42 GMT
Канал: Все статьи подряд / Assembler / Хабр

Вы когда‑нибудь смотрели на.EXE‑файл своей любимой DOS‑игры и думали: «Что там внутри? Можно ли это понять без докторской по ассемблеру?» Эта не просто очередной обзор регистров. Это второй шаг в глубокое погружение туда, где байты начинают «говорить». Мы начинаем с тех, кто дал нам язык: с Рэя Доббса, чьи книги «Programming in the MS‑DOS Environment» и «Advanced MS‑DOS Programming» были библией поколения, с Рэндэлла Хайды, чья «The Art of Assembly Language» научила мыслить на языке машины, и с Ральфа Броуна, чей «Interrupt List» стал первым справочником, в котором каждое int 21h перестаёт быть чёрным ящиком и приобретает конкретный смысл. Вы узнаете, что AX, CX, DS:DX и EFLAGS — это не раздельные элементы. Вы поймёте, как они связаны, как передаются данные, как принимаются решения, как программа взаимодействует с системой. Как прерывания становятся точками соприкосновения с системой и как по ним можно восстановить логику программы. Мы начинаем движение от байтов к смыслообразующему коду. Готовы сделать следующий шаг? Исследовать]]>

https://habr.com/ru/articles/937082/
#  Низкоуровневый АД: пишем свою ОС — Часть 1. Загрузчик и стартовое ядро
BotHabr (tgi,2) → All  –  12:27:15 2025-09-22

Опубликовано: Mon, 18 Aug 2025 07:38:56 GMT
Канал: Все статьи подряд / Assembler / Хабр

Всем здрасте, и сегодня мы начнем наше прохождение через низкоуровневый кодинг - написание ОС. Сегодня мы напишем загрузчик (точнее конфиг к GRUB) и простенькое ядро, которое будет выводить "Hello OSDev!"Что нам понадобится: Сделать ОС]]>

https://habr.com/ru/articles/938104/
#  Низкоуровневый АД: пишем ОС. Часть 2 — модули и ввод
BotHabr (tgi,2) → All  –  12:27:15 2025-09-22

Опубликовано: Tue, 19 Aug 2025 08:55:27 GMT
Канал: Все статьи подряд / Assembler / Хабр

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

https://habr.com/ru/articles/938544/
#  CP/M, DOS и их .COMманды
BotHabr (tgi,2) → All  –  12:27:14 2025-09-22

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

Небольшое предупреждение! Я буду говорить не просто о том "Как запускаются комманды?", а покажу часть внутреннего мира операционных систем и покажу принципиальную разницу в их работе.Это моя первая статья, вырванная из дневника, который я веду пока что закрыто, особо не выкладывая заметки в публичный доступ. Читать далее]]>

https://habr.com/ru/articles/938640/
#  MZ-Executable | Исполняемые файлы и MS-DOS (переработка)
BotHabr (tgi,2) → All  –  12:27:14 2025-09-22

Опубликовано: Thu, 21 Aug 2025 14:47:54 GMT
Канал: Все статьи подряд / Assembler / Хабр

Практически сразу, в PC-DOS, вместе с .COM файлами, появились .EXE файлы (полн. "EXEcutable" или "исполняемые"). Сегодня речь пойдет именно об этом. Поскольку история происходит снова в Microsoft, запутаться можно очень легко, в любом месте. Читать далее]]>

https://habr.com/ru/articles/939506/
#  Ассемблер: рассматриваем каждый байт «Hello, World!». Как на самом деле работают программы на уровне процессора и ОС
BotHabr (tgi,2) → All  –  12:27:14 2025-09-22

Опубликовано: Tue, 26 Aug 2025 08:05:13 GMT
Канал: Все статьи подряд / Assembler / Хабр

Что на самом деле происходит, когда вы запускаете программу? Мы привыкли воспринимать это как данность, но за кадром скрывается целая вселенная — от регистров процессора и системных вызовов Linux до формата ELF и модели памяти процесса. Присоединяйтесь к погружению, где мы прольём свет на каждый байт программы «Hello, World!» и поймём, каким образом ОС её выполняет. Читать далее]]>

https://habr.com/ru/companies/timeweb/articles/940310/
#  [Перевод] От математики к машине: преобразуем функцию в машинный код
BotHabr (tgi,2) → All  –  12:27:13 2025-09-22

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

В этом посте будет исследовано, как математическую концепцию можно постепенно переформулировать во всё более «вычислительных» понятиях, от высокоуровневого языка, далее до машинного кода и, наконец, до прямого исполнения компьютером. Для этого определю одну и ту же логику в нескольких разных, но перекликающихся друг с другом форматах:1. Математика — чистая математика2. Haskell — язык для функционального программирования3. C — язык для императивного программирования4. Ассемблер — сравнительно удобочитаемое представление машинного кода5. Машинный код для архитектуры x86-64 — вот это уже интересноЕсли вам интересно, какие отличия бывают между языковыми стилями или любопытно, как ваш код может выглядеть после компиляции — добро пожаловать под кат! Читать далее]]>

https://habr.com/ru/articles/942064/
#  vm5277, пример компиляции для AVR
BotHabr (tgi,2) → All  –  12:27:13 2025-09-22

Опубликовано: Sat, 30 Aug 2025 07:16:31 GMT
Канал: Все статьи подряд / Assembler / Хабр

Пишем один код - собираем на разные 8 бит МК!https://vm5277.ru- это универсальное решение для embedded-разработки, которое позволяет сократить время создания прошивки для 8 бит микроконтроллеров в разы.Как это работает:Пишешь код на Java подобном языке (чистое ООП, без головной боли с указателями и не читабельным кодом)Компилятор автоматически генерирует оптимизированный ассемблерный код под выбранную платформуКод работает поверх легковесной RTOS, написанной на ассемблере для максимальной производительностиАссемблер-сборщик финализирует проект в бинарный файл прошивки Читать далее]]>

https://habr.com/ru/articles/942258/
#  Assembler для Windows в Visual Studio. Часть вторая — MASM x64 и юникод
BotHabr (tgi,2) → All  –  12:27:13 2025-09-22

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

Вторая часть рассказа об ассемблере под Windows. Здесь я расскажу про 64-разрядные приложения в Windows, чем отличается MASM 64 от MASM 32, про макросы из MASM 64 SDK, как работать с Юникодом на примере простого консольного REPL'а, а ещё как обойтись без Visual Studio и пользоваться masm просто из командной строки.Первая часть — Assembler для Windows в Visual Studio. Читать далее]]>

https://habr.com/ru/companies/ruvds/articles/884240/
#  Reverse Engineering для самых маленьких
BotHabr (tgi,2) → All  –  12:27:12 2025-09-22

Опубликовано: Tue, 02 Sep 2025 14:45:43 GMT
Канал: Все статьи подряд / Assembler / Хабр

В этой статье мы разберём самую базу реверс‑инжиниринга на примере простого crackme — программы, созданной для практики «хацкинга». Ничего серьёзного. Читать далее]]>

https://habr.com/ru/articles/943246/
#  AsmX G3 v29: Эволюция компилятора — от стабильности к упаковке Linux приложений. упаковка для Debian-based систем, AUR
BotHabr (tgi,2) → All  –  12:27:12 2025-09-22

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

AsmX G3 v29-rev1.0 меняет игру: компилятор, который не только генерирует код, но и пакует его в .deb для Debian/Ubuntu и живёт в AUR с asmx-g3-git, asmx-stable, asmx-official. Проект даёт разработчикам контроль над низкоуровневым кодом и упрощает дистрибуцию приложений. Мощный TAPI и стабильность — всё, чтобы ваш код стал приложением быстрее, чем вы скажете yay -S или paru -S! Читать полностью]]>

https://habr.com/ru/articles/944064/
#  Достучаться до RDPMC вайб-кодингом Windows драйвера
BotHabr (tgi,2) → All  –  12:27:11 2025-09-22

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

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

https://habr.com/ru/articles/944240/
#  Не смотрите на % использования процессора при гиперпоточности
BotHabr (tgi,2) → All  –  12:27:11 2025-09-22

Опубликовано: Mon, 08 Sep 2025 16:22:24 GMT
Канал: Все статьи подряд / Assembler / Хабр

Этот небольшой этюд служит как бы продолжением статьи "Проценты использования процессора — это ложная метрика". Мы попытаемся копнуть чуть поглубже и более детально разобраться как работает гиперпоточность (или гипертрединг, как его иногда называют). Читать далее]]>

https://habr.com/ru/articles/945076/
#  Операционная система от А до Я: Планировщик
BotHabr (tgi,2) → All  –  12:27:10 2025-09-22

Опубликовано: Wed, 13 Aug 2025 11:00:36 GMT
Канал: Все статьи подряд / Программирование микроконтроллеров / Хабр

Планировщик — мозг операционной системы. Его задача: решать, какая задача выполняется сейчас, и по каким правилам выдавать процессор другим задачам. Для embedded систем это особенно критично: ресурсы ограничены, реальное время важно, а поведение должно быть предсказуемым.Это вторая из цикла статей про создание микроядерной операционной системы. В прошлой статье рассматривался таймер и HAL. Для вновь пришедших необходимо сначала ознакомиться с ней: ссылка. Читать далее]]>

https://habr.com/ru/articles/936762/
#  Здоровое питание для стенда. Концепция открытого источника питания для тестирования электроники
BotHabr (tgi,2) → All  –  12:27:09 2025-09-22

Опубликовано: Thu, 14 Aug 2025 15:25:06 GMT
Канал: Все статьи подряд / Программирование микроконтроллеров / Хабр

Как гарантировать, что тысячи устройств будут работать безупречно как в лабе, так и у конечного пользователя? Конечно, с помощью тестов на всех этапах. Чем запитать DUT (тестируемое устройство)? С одной стороны — дешевый китаец (проблемно непредсказуемый или предсказуемо проблемный), с другой — лабораторный монстр (пугающе дорогой, 90% наворотов — мусор). Мы устали делать этот выбор, и решили сделать свой источник: надёжный с первой до последней секунды теста, компактный, умный и послушный. Вот что мы придумали:]]>

https://habr.com/ru/articles/937264/
#  Как избежать кошмара параллелизма в IoT: автоматы вместо потоков и корутин
BotHabr (tgi,2) → All  –  12:27:09 2025-09-22

Опубликовано: Fri, 15 Aug 2025 08:26:07 GMT
Канал: Все статьи подряд / Программирование микроконтроллеров / Хабр

В статье рассматривается библиотека на C++, которая предназначена для реализации технологии параллельного автоматного программирования (АП), отвечающей концепции среды ВКПа (подробнее о ней см. [1]). Для полного понимания материала рекомендуется ознакомиться с основами теории АП, представленной в статьях [2, 3, 4], Взаимосвязь машины Тьюринга с конечными автоматами (КА) подробно рассмотрена в [5]. Вопросы применения корутин в контексте автоматного программирования анализируются в статьях [6–9]. Но в минимальном варианте достаточно даже общего представления о модели конечного автомата и принципах объектного программирования. Читать далее]]>

https://habr.com/ru/articles/937448/
#  Murmulator OS 2.0 под RP2350 (Raspberry Pi Pico 2)
BotHabr (tgi,2) → All  –  12:27:08 2025-09-22

Опубликовано: Sat, 16 Aug 2025 00:27:37 GMT
Канал: Все статьи подряд / Программирование микроконтроллеров / Хабр

Что такое Мурмулятор я уже писал тут. Немного повторюсь — это ультрабюджетная «материнская плата», в которую вставляется «процессор» — плата на основе RP2040 (Raspberry Pi Pico) или RP2350 (Raspberry Pi Pico 2). Мурмуляторы бывают разные — и под VGA выход, и под HDMI, и под всякую экзотику типа небольших TFT экранчиков на чипах ILI9341/ST7789. Есть устройства с дополнительной памятью PSRAM, есть с поддержкой дополнительных портов USB через отдельную микросхему‑хаб. И всё это великолепие требует драйверов. Стиль разработки под RP2040/2350 — это всё собрать вместе в один монолит baremetal‑прошивки, и плодятся прошивки кучами... Например, релиз pico‑spec 1.2.C насчитывает более 20-ти вариантов сборки под разное оборудование, и это — не предел.Чтобы как‑то упорядочить всё это безобразие была разработана операционная система, которая содержит в себе необходимые драйвера. Идея в том, что настраивать нужно только её, а прикладные программы уже должны использовать API для доступа к функционалу...В то время существовал ещё только чип RP2040, и про 2350 не было даже слышно, соответственно, разработанная ОС была полностью заточена под этот существующий тогда SoC. О самой ОС и её использовании я как‑то уже выпускал статьи. Поэтому сосредоточусь на ключевых отличиях новой версии.Никаких новых возможностей версия 2.0 пока не предоставляет. Это просто полное портирование МОС на немного отличающийся SoC.Первое основное отличие — 2.0 не умеет запускать .uf2-файлы. Для запуска «тяжёлых» приложений необходимо из заранее собрать «с отступом». Такой формат получил название «.m1p2» — т. е. под Мурмулятор первых версий с «пикой» второй версии. Этот же формат использует pico‑launcher для RP2350, который тоже не умеет запускать .uf2-файлы (в отличии от версии под RP2040). Читать далее]]>

https://habr.com/ru/articles/937718/
#  Первый опыт портирования open-source прошивки на отечественный микроконтроллер К1946ВК035
BotHabr (tgi,2) → All  –  12:27:08 2025-09-22

Опубликовано: Mon, 18 Aug 2025 08:16:03 GMT
Канал: Все статьи подряд / Программирование микроконтроллеров / Хабр

Привет всем любителям схемотехники и программирования микроконтроллеров!Мы начинаем цикл статей о работе с отечественным микроконтроллером К1946ВК035 — тем самым, который всё чаще мелькает в разговорах про импортозамещение, но пока ещё редко встречается «вживую» в рабочих проектах.И начать мы решили с испытания на прочность: портирования популярной open-source прошивки AM32 для управления бесколлекторными двигателями. Здесь не обойдёшься простым «собрал и прошил» — все подробности и ещё много интересного ждут вас в этой статье. Читать далее]]>

https://habr.com/ru/articles/938128/
#  Mibro Watch Lite3 — тюним крутой .elf циферблат
BotHabr (tgi,2) → All  –  12:27:08 2025-09-22

Опубликовано: Mon, 18 Aug 2025 09:03:43 GMT
Канал: Все статьи подряд / Программирование микроконтроллеров / Хабр

Сегодня я расскажу вам, что представляет собой данная модель, как устроены циферблаты, покажу как легко можно переделать их под себя, нативное .ELF приложение как циферблат это действительно интересно.. Читать далее]]>

https://habr.com/ru/articles/938024/
#  Практическое руководство по проектированию для инженеров по мощным модулям LoRa1121F33-2G4
BotHabr (tgi,2) → All  –  12:27:07 2025-09-22

Опубликовано: Mon, 18 Aug 2025 10:46:03 GMT
Канал: Все статьи подряд / Программирование микроконтроллеров / Хабр

LoRa6100Pro-mini — это современный беспроводной UART-модуль от компании NiceRF, построенный на базе чипа Semtech SX127X и использующий технологию LoRa с расширенным спектром. Модуль предназначен для передачи данных на большие расстояния при низком энергопотреблении и высокой помехоустойчивости, что делает его идеальным решением для IoT-приложений. Читать далее]]>

https://habr.com/ru/articles/938208/
Powered by iii-php v0.11