Hacker News Digest

Тег: #nasm

Постов: 2

FFmpeg Assembly Language Lessons (github.com)

FFmpeg/asm-lessons — репозиторий с уроками по ассемблеру для FFmpeg.
Цель: научиться писать высокопроизводительные рутины на x86-64, ARM и других архитектурах, ориентированные на мультимедиа-задачи.

Содержание (кратко):

  • Уроки: от базовых инструкций до векторных расширений (SSE/AVX, NEON).
  • Примеры: реализация IDCT, фильтров, цветового преобразования.
  • Тесты: юнит-тесты и бенчмарки для сравнения C vs asm.
  • CI: автоматическая проверка на x86-64 и ARM через GitHub Actions.

Как начать:

  1. Клонируйте репо.
  2. Установите nasm, yasm или llvm-mingw.
  3. Соберите пример: make lesson01.

Полезные ссылки:

by flykespice • 18 августа 2025 г. в 13:39 • 228 points

ОригиналHN

#ffmpeg#assembly#x86-64#arm#nasm#simd#vectorization#performance-optimization#multimedia#github

Комментарии (65)

  • Пользователи восхищаются масштабом FFmpeg и экономией вычислений даже от малейших улучшений.
  • Основной материал воспринимается как базовый курс по ассемблеру, а не как конкретные «перлы» оптимизации FFmpeg.
  • Спрашивают, как находить узкие места и стоит ли писать LLVM-IR вручную; большинство отвечает «нет», лучше использовать встроенные вектор-прагмы или писать ассемблер под каждую архитектуру.
  • Отмечают, что уроки не содержат нужной математики и не показывают, как запустить примеры в NASM, что затрудняет старт.
  • NASM-версии привязаны к x86-64 и активно используют макросы, что затрудняет перенос на другие ассемблеры.

MS-DOS development resources (github.com)

DOSDevelResources — подборка инструментов и ссылок для разработки под DOS.

Содержание

  • Языки

    • C/C++: Watcom, DJGPP, OpenWatcom, SmallerC, SubC
    • Pascal: Free Pascal, Turbo Pascal 5.5
    • BASIC: FreeBASIC, QB64, QuickBASIC 4.5
    • Сборка: NASM, FASM, WASM, TASM, MASM 6.11
    • Прочее: Rust (rustc-dos), Go (gccgo), Lua, Python 2.4
  • Библиотеки и API

    • Allegro, SDL, Raylib, GRX, pdcurses, OpenGL (Mesa3D), VESA, SoundBlaster, TCP/IP (Watt-32, mTCP)
  • Утилиты

    • Редакторы: RHIDE, FTE, SETEdit, TDE, Vim, Emacs
    • Отладчики: GDB, WD, TD, SoftICE
    • Упаковка: UPX, LZEXE, PKLite, Diet
    • Эмуляция: DOSBox, DOSBox-X, 86Box, PCem, Bochs
    • Разное: Git, Make, Doxygen, Valgrind-like (Dr. Memory)
  • Документация

    • Ralf Brown’s Interrupt List, PCGPE, Intel/AMD manuals, OSDev Wiki
  • Ссылки

Как пользоваться

Клонируйте репозиторий:

git clone https://github.com/SuperIlu/DOSDevelResources.git

Все файлы/архивы лежат в каталогах по темам.

Лицензия

MIT.

by mariuz • 17 августа 2025 г. в 16:10 • 104 points

ОригиналHN

#c#c++#pascal#basic#nasm#fasm#freedos#dos#git#rust

Комментарии (32)

  • Участники вспомнили, что DOS-ретросцена жива: анонсирован 3-месячный DOSember game-jam.
  • Перечислены доступные инструменты: HX DOS Extender, JWasm, Borland C++ 3.1, Free Pascal, DJGPP, GW-BASIC/PC-BASIC, а также MIT-лицензированный набор Microsoft 1988 года.
  • Названы ключевые ресурсы: PC Games Programming Encyclopedia, эмулятор PCjs, книги «Black Book of Graphics Programming», «Programmer’s Guide to the EGA/VGA» и «PC-Intern».
  • Отмечены удобные IDE: RHIDE и клон Turbo Vision от Free Pascal, а также ностальгия по быстрым Borland-IDE.
  • Обсуждали, что современные ассемблеры (FASM/NASM) удобнее старых MASM/TASM, а DOS-цели можно собирать даже из Win32 PE.