Я полностью согласен с samcl
Основная причина, по которой вы больше не используете ассемблер, заключается в том, что вы больше не можете получить доступ к Videomemory. Еще в первые дни (вы упомянули Castle Wolfenstein) существовал особый режим видео под названием 0x13h , где ваша графика была просто блоком памяти (каждый пиксель представлял собой палитру цветов в диапазоне от 0 до 255 <- 1 Байт) Вы смогли получить доступ к этой памяти через этот конкретный режим видео, однако сегодня все гораздо сложнее </p>
Сегодня у вас очень быстрая Videomemory, и использование вашего ЦП для доступа к нему просто снизит всю производительность, поскольку ваш ЦП подключен через PCI-Express / AGP / PCI / VESA-LOCALBUS / ISA (<- кто-нибудь помнит !?) </p>
Графическое программирование - это часто доступ для чтения и записи (считывание пикселя, проверка прозрачности, умножение на альфа, запись пикселя и т. Д.)
Современные интерфейсы памяти намного медленнее, чем прямой доступ внутри графической карты. Вот почему вы действительно должны использовать шейдеры, как предлагает Роберт Гулд. Таким образом, вы можете писать код быстрее и проще для понимания, и это не остановит вашу GFX-память.
ЕСЛИ вас больше интересует программирование GFX, вы можете увлажнить свой аппетит с помощью shadertoy , сообщества, посвященного эффектам на основе шейдеров в сочетании с исполнением Shadercode на основе WebGL.
Также ваш код для начинающего ассемблера будет довольно слабым. по качеству как по производительности. Доверьтесь мне. Для оптимизации такого примитивного кода нужно много времени. Таким образом, ваш скомпилированный код C / C ++ легко превзойдет ваш рукописный ассемблер.
Если вас не интересует Ассемблер, попробуйте написать что-нибудь вроде доступа к диску. Это где вы можете получить много производительности.