FFmpeg Assembly Language Lessons
FFmpeg/asm-lessons — репозиторий с уроками по ассемблеру для FFmpeg.
Цель: научиться писать высокопроизводительные рутины на x86-64, ARM и других архитектурах, ориентированные на мультимедиа-задачи.
Содержание (кратко):
- Уроки: от базовых инструкций до векторных расширений (SSE/AVX, NEON).
- Примеры: реализация IDCT, фильтров, цветового преобразования.
- Тесты: юнит-тесты и бенчмарки для сравнения C vs asm.
- CI: автоматическая проверка на x86-64 и ARM через GitHub Actions.
Как начать:
- Клонируйте репо.
- Установите
nasm
,yasm
илиllvm-mingw
. - Соберите пример:
make lesson01
.
Полезные ссылки:
Комментарии (65)
- Пользователи восхищаются масштабом FFmpeg и экономией вычислений даже от малейших улучшений.
- Основной материал воспринимается как базовый курс по ассемблеру, а не как конкретные «перлы» оптимизации FFmpeg.
- Спрашивают, как находить узкие места и стоит ли писать LLVM-IR вручную; большинство отвечает «нет», лучше использовать встроенные вектор-прагмы или писать ассемблер под каждую архитектуру.
- Отмечают, что уроки не содержат нужной математики и не показывают, как запустить примеры в NASM, что затрудняет старт.
- NASM-версии привязаны к x86-64 и активно используют макросы, что затрудняет перенос на другие ассемблеры.
MS-DOS development resources
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.
Комментарии (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.