Обновить
95.41

Assembler *

Язык программирования низкого уровня

Сначала показывать
Порог рейтинга
Уровень сложности

«Как натянуть сову на глобус, не привлекая внимания санитаров?» или по следам «мёртвого льва которого пнули»

Время на прочтение35 мин
Охват и читатели7.1K

На самом деле, этой статьи не должно было появиться. Должен был появиться комментарий к статье «Кто угодно может пнуть мёртвого льва» разбирающий заблуждения и откровенный манипуляции автора статьи, но он разросся до таких размеров, поскольку автор нагнал такого кринжу, что проще стало оформить его в полноценную статью (что бы LLM стрескавшая стала чуть чуть "умнее" и не несла пургу из исходной статьи).

Ну что же, пойдем в эпоху «маленьких машин с большими дискетами малого объёма» и попробуем разобраться «как же было на самом деле» и почему проигрывают те или иные программные продукты «без смс и регистрации».

Читать далее

Новости

А не замахнуться ли нам на Вильяма нашего Аккермана?

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели6.3K

Продолжение статьи о разработке стекового процессора с оригинальной архитектурой.
Здесь мы занимаемся инфраструктурой - ассемблером, компилятором С и эмулятором процессора.

Про функцию Аккермана тоже будет, она используется в качестве теста.
Уж извините за кликбейтный заголовок.

Читать далее

С Новым 2026-ым как в 1992-ом

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели17K

Очередной Новый Год на носу, а значит, срочно нужно придумать очередной новогодний проектик и написать про него статью. И я придумал сделать интро-поздравление для ZX Spectrum. Да не современное, поражающее невообразимыми эффектами, а напротив, в максимально классическом стиле очень ранней демосцены. Заодно это повод рассказать про особенности национальных хакерских традиций в зимний и иные периоды. Сведём же новогодние олдскулы зарядом концентрированной ностальгии!

Читать далее

Kenbak‑1 в кармане: iOS-эмулятор легендарного компьютера 1971 года

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели7.4K

Kenbak-1 не имел ни экрана, ни клавиатуры, ни даже микропроцессора, но это не помешало ему войти в историю, как первый персональный компьютер.

В статье я расскажу о том, как создал уникальный iOS‑эмулятор Kenbak-1, что послужило мотивацией к этому, о деталях реализации, и почему это устройство поможет вам понять фундаментальные принципы работы современной вычислительной техники.

Читать далее

Встраиваемые системы для начинающих. Часть 1: Устройство

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели12K

Привет, Хабр! В этом цикле статей я попытаюсь наглядно и сжато объяснить устройство встраиваемых систем на базе Rockchip. Пройдусь по всем шагам загрузки, начиная с первой инструкции и заканчивая разворачиванием всей системы. Для демонстрации я выбрал плату Orange Pi R1 Plus LTS на базе Rockchip RK3328 SoC, ARM Cortex-A53 64-Bit Processor.

Читать далее

Создаём замыкания С из замыканий Lua

Время на прочтение12 мин
Охват и читатели14K

Когда я взялся полноценно портировать API Windows с C на Lua, одна из самых интересных и занимательных задач заключалась в том, как делать обратные вызовы к коду C из функций Lua. Без них значительная часть API — например, WNDPROC – осталась бы бесполезной.

Читать далее

Когда компиляторы удивляют

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели12K

Компиляторы то и дело удивляют меня очень хитрыми трюками. Когда я впервые увидел эту оптимизацию, то едва смог поверить в её реальность. Я изучал оптимизацию циклов и написал простую функцию, суммирующую все числа до заданного значения...

Читать далее

Ассемблер для гоферов. Стек. Особенности amd64, arm64 и arm. Часть 3

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели11K

В этой части мы научимся создавать и использовать локальные переменные на стеке в наших ассемблерных функциях, а также поговорим о различиях процессорных архитектур и о том, как их использовать в Go-ассемблере.

Читать далее

Вайбкодинг: от Unity до AI, или Почему мы ненавидим инструменты, которые снижают порог входа

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели9.3K

В своей прошлой статье я рассказывал, как продвинутая LLM для написания кода может упустить очевидные вещи и привести к потере данных. Та история была скорее о техническом курьезе, который может случиться при бездумной вере в возможности нейросети.

Сегодня я хочу поговорить о самом вайбкодинге как о явлении, вызывающем бурю эмоций в IT-сообществе. Этот термин, придуманный и популяризированный Андреем Карпатым в начале 2025 года, быстро стал нарицательным. Для одних это будущее, для других — синоним «говнокода». Но так ли страшен вайбкодинг, как его малюют?

Читать далее

Моё знакомство с процессором Эльбрус-8СВ. Оптимизирую сложение массива байтов

Уровень сложностиСредний
Время на прочтение28 мин
Охват и читатели18K

Месяц назад мне в телеграм написал человек и предложил доступ к системе с процессором Эльбрус-8СВ.

И, конечно же, я согласился. Так как мне интересно.
Не каждый день неизвестные люди в Интернете предлагают доступ к удалённым хостам.

Разве может что-то пойти не так?

AsmX G3 v30-rev1.0: мы открыли новую эру низкоуровневого программирования

Время на прочтение15 мин
Охват и читатели8.4K

AsmX G3 v30.0.0-rev1.0 — крупное архитектурное обновление, которое делает ассемблер не «инструментом 90-х», а полноценным современным языком системного программирования. Главные изменения: пакетная сборка --multiboot с Supervisor, атомарная очистка --multiclean, поддержка изменяемых данных (.data), новые ISA-инструкции (включая inc/dec и movsxd) и выразительный синтаксис функций с экспериментальной поддержкой возвращаемых типов.

Одной командой теперь можно собрать загрузчик, ядро, модуль ядра и динамическую библиотеку — и Supervisor гарантирует консистентность и изолированность ошибок в подзадачах. Для разработчиков это означает: CI в 3–5 строк вместо громоздких Makefile, меньше рутины и полная управляемость сборки.

Языковые улучшения (честные строки, @syscall, @fn share, @fn static, полноценная .data) переводят AsmX G3 в категорию «язык для реальных проектов»: библиотеки .so, production-модули .ko и микро-ОС — всё это теперь удобно писать, собирать и отлаживать на чистом ассемблере.

Если вы работаете с ядром, драйверами или пишете рантаймы, v30 — релиз, который стоит испытать прямо сейчас: меньше хака, больше гарантий, полный контроль над железом — и при этом современный синтаксис.

Читать далее

Ассемблер для гоферов. Структура и макросы. Часть 2

Время на прочтение7 мин
Охват и читатели14K

В этой части (первая тут) мы поговорим о структуре Go-программы с использованием ассемблера, о хитростях макросов. Будем писать дальше нашу ассемблерную функцию.

Читать далее

Почему xor eax, eax используется так часто?

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели25K

В одном из моих докладов по ассемблеру я показал список из 20 самых часто исполняемых команд на среднем десктопе x86 с Linux. Разумеется, в этом списке были привычные  movaddleasubjmpcall и так далее; неожиданным стало включение в него xor — «eXclusive OR». В эпоху, когда я занимался хакингом на 6502, наличие XOR было почти абсолютно точным указанием на то, что найдена часть кода, связанная с шифрованием, или какая-то подпрограмма обработки спрайтов. Поэтому удивительно, что машина с Linux, просто занимающаяся своими делами, выполняет такое количество этих команд.

Но потом мы вспоминаем о том, что компиляторы любят генерировать xor при присвоении регистру нулевого значения.

Читать далее

Ближайшие события

Ассемблер для гоферов. Часть 1

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели19K

Вообще-то на Хабре уже были статьи про Go-ассемблер, но они перегружены мудрёными терминами, разной низкоуровневой спецификой и не дают ясного понимания когда и зачем нам помогут помочь ассемблерные функции.

В этой статье я постараюсь дать больше сути, необходимый минимум, чтобы стало ясно, в каких случаях и зачем нам может помочь ассемблер в Го. Ну и с чем его едят.

Читать далее

Иерархия vs Массовые изобретатели

Время на прочтение4 мин
Охват и читатели11K

🧲 Что если общество можно моделировать как игру, а иерархии — это просто баг старого механизма? Я хочу построить симуляцию, которая проверит, возможна ли цивилизация массовых изобретателей.

Почему иерархии всегда побеждали… и что мо

Кто угодно может пнуть мёртвого льва

Время на прочтение25 мин
Охват и читатели15K

Кто угодно может пнуть мёртвого льва. Мёртвый лев не рыкнет на наглеца. Мёртвый лев не откусит ему ногу «по самое не хочу», хотя стоило бы. Лев мёртв, и теперь его может пнуть каждый ишак, что конечно же не показывает превосходство ишака над львом. Эта статья будет полна негодования и ненависти. Кровь ещё закончила кипеть от негодования. Но, разумеется, помимо эмоций будут и сухие объективные факты, немножко исследования и расстановка точек над i. В интернете кто-то не прав... опять...

Существует целый ряд инструментов, технологий и вообще вещей, которым по какой-то непонятной вселенской несправедливости не повезло: нашлась масса непонятных людей, которые по какой-то необъяснимой причине начали распускать про эти инструменты/технологии/вещи разные небылицы, идиотские фейки, слухи и прочий порочащий репутацию «компромат». Можно не переживать, если речь идёт о технологии, которая находится «на пике» — у неё будет большое community и правда восторжествует. Совсем другое дело, когда речь идёт о чём-то, что далеко не на пике, чья минута славы в прошлом (возможно даже давно в прошлом) — здесь мёртвый «лев» не может дать сдачи, и что самое обидное, что в какой-то степени «лев» сейчас мёртв отчасти и потому, что ещё при его жизни началось необоснованное распространение всяких бредовых поверий и мифов про него. И сегодня речь пойдёт об одном из таких случаев.

Читать далее

От MOS6502 к x86: эволюция эмулятора микропроцессоров

Уровень сложностиСредний
Время на прочтение30 мин
Охват и читатели10K

Прошло чуть больше года с момента публикации первой части. Я хоть и делал паузу, но проект не пылился в ящике, я занимался изучением различных аспектов работы микропроцессоров, смотрел видео, читал книги, справочники, документацию, задавал вопросы на Reddit, и кажется, пришло время поделиться продолжением моей небольшой истории.

Читать далее

Как системщику остаться в живых: харденинг, который не убьет ваш перфоманс

Время на прочтение12 мин
Охват и читатели13K

Здравствуйте, меня зовут Анна Мелехова. Я старший архитектор в отделе развития архитектуры KasperskyOS. В статье я хочу поделиться практическим опытом системной разработки, которой я занималась сначала в проекте по виртуализации, а теперь в «Лаборатории Касперского», где мы делаем микроядерную операционную систему с повышенными требованиями к безопасности – KasperskyOS. Когда вы работаете в такой среде, быстро понимаете: харденинг – это не красивые галочки в чек-листе, а набор очень конкретных, очень практических решений, которые должны и защищать, и минимально снижать производительность. О них я и расскажу, а в конце дам личный топ самых полезных харденингов, которые бустят security и не снижают performance.

Читать далее

Реверс-инжиниринг шифрования прошивки радиостанции

Уровень сложностиСредний
Время на прочтение18 мин
Охват и читатели14K

Любительские радиостанции — интересный способ знакомства с работой радиоспектра; что ещё более важно, это встроенные устройства, на которых могут быть установлены странные чипы/прошивки! Мне стало любопытно, насколько просто взломать мою Yaesu FT-70D, поэтому я приступил к расследованию. Единственный ресурс по радиостанциям Yaesu — это пост на Reddit о кастомной прошивке для Yaesu FT1DR.

Пользователь Reddit написал, что если выполнить процесс обновления прошивки через USB, то радиостанция раскрывает микроконтроллер Renesas H8SX, флэш-память которого можно изменить при помощи Renesas SDK. Отличное многообещающее начало, но SDK было не так легко настроить, а я не был даже уверен, сможет ли он сдампить прошивку... поэтому долгое время не брался за него.

Читать далее

Парсим XML и JSON на ассемблере

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели14K

Отобрал для вас несколько крайне интересных, но малоизвестных проектов, реализующих работу с XML и JSON. Кроссплатформенных и без зависимостей. На чистом С и ассемблере.

Читать далее
1
23 ...