Главная » Архив меток: Assembler

Архив меток: Assembler

Ускоряем неускоряемое или знакомимся с SIMD

Есть класс задач, которые нельзя ускорить за счёт оптимизации алгоритмов, а ускорить надо. В этой практически тупиковой ситуации к нам на помощь приходят разработчики процессоров, которые сделали команды, позволяющие выполнять операции на большим количеством данных за одну операцию. В случае x86 процессоров это инструкции сделанные в расширениях MMX, SSE, SSE2, SSE3, SSE4, SSE4.1, SSE4.2, AVX, AVX2, AVX512. В качестве «подопытного ...

Читать далее »

Устройство компилятора Swift. Часть 4

Я покажу, как можно осуществить генерацию LLVM IR из AST и что выдаёт настоящий фронтенд. Это последняя часть моего обзора компилятора Swift. Если вы не читали предыдущие части, то переходите по ссылкам: Генератор LLVM IR преобразует SIL в промежуточное представление LLVM. Для фронтенда — это завершающий шаг. Оно передаётся в бекенд для дальнейшей оптимизации и генерации машинного кода. Пример реализации ...

Читать далее »

На что способен PC Speaker

Известный теперь как «системный динамик», а то и просто «пищалка», PC Speaker появился на свет в 1981 году вместе с первым персональным компьютером IBM. Наследник нескольких поколений больших компьютеров для серьёзных дел, он с рождения был предназначен лишь для подачи простейших системных сигналов, и не мог достойно проявить себя в озвучивании главенствующих на домашнем рынке развлекательных программ. Сильно уступая звуковым ...

Читать далее »

[Перевод] Эволюция переключения контекста x86 в Linux

И я погрузился в код, который не видел уже много лет. В прошлые выходные, изучая интересные факты об аппаратном переключателе контекста 80386, я вдруг вспомнил, что первые версии ядра Linux полагались именно на него. Я покажу все самородки и забавные артефакты, которые нашёл по пути. Сейчас я решил описать это чудесное путешествие по истории Linux. 01) до последней версии LTS ...

Читать далее »

Модификация к игре на основе dll-wrapper’a

Имеется игра In Verbis Virtus с необычной механикой — творить заклинания с помощью микрофона. Это не симулятор Амаяка Акопяна, это головоломка от первого лица с нетипичным управлением.Для этого в игре используется библиотека распознавания речи Sphinx. Задумка выглядит интересной, но реализация вышла так-себе (распознавание очень часто промахивается), да и кастовать после первых 20 минут откровенно надоедает.О том, как это выглядит со ...

Читать далее »

[Перевод] Чему нас научила PDP-11?

C. G. Bell, W. D. Strecker, “Computer What Have We Learned from the PDP-11,” The 3rd Annual Symposium on Computer Architecture Conference Proceedings, pp. l-14, 1976. Это одна из ряда статей Гордона Белла с различными соавторами, описывающей разработку, рост, и внезапную замену культовой линейки продуктов компании, миникомпьютеров PDP-11. Эта статья, которую я выбрал сегодня, является ретроспективой компьютерного дизайна. C. G. ...

Читать далее »

[Перевод] Создание игры для Game Boy

Несколько недель назад я решила поработать над игрой для Game Boy, создание которой доставило мне большое удовольствие. Её рабочее название «Aqua and Ashes». Игра имеет открытые исходники и выложена на GitHub. Как мне пришла в голову эта идея Недавно я получила работу в интернатуре по созданию бэкенда на PHP и Python для веб-сайта моего университета. Это хорошая и интересная работа, ...

Читать далее »

[Перевод] [The Old New Thing] Могу ли я использовать свой стек как угодно?

Иногда это определяется архитектурно, а иногда это просто принятое соглашение. В Windows стек растет от больших адресов к меньшим. А значения, расположенные глубже по стеку, соответственно, находятся по большим адресам. Значение указателя стека (регистр процессора), является указателем на значение в верхней части стека. Но что происходит с данными, которые расположены по адресам, меньшим, чем указатель стека? Соглашения для некоторых (но ...

Читать далее »

Байт-машина для форта (и не только) по-индейски (часть 3)

Новогодние праздники подходят к концу. Наступил год 2019. Придется вспоминать вместе!Сегодня сделаем интерпретатор для нашей байт-машины. Самое время начать вспоминать байты, команды, переменные, циклы…Что-то я все уже забыл с этими праздниками. Вопросы эти совершенно правильные. Это третья статья, первые части тут: часть 1, часть 2.Всех с новым годом, и добро пожаловать под кат!Для начала отвечу на вопросы от fpauk. Но ...

Читать далее »

Модернизация IDA Pro. Отладчик для Sega Mega Drive (часть 2)

Привет всем, Теперь пришёл черёд написания собственно плагина-отладчика для IDA Pro, версия 7. В предыдущей статье мы успешно модифицировали ядро эмулятора игр на Sega Mega Drive / Genesis, добавив в него возможность отладки. Приступим. 0. Часть вторая: плагин-отладчик Для начала создадим новый пустой DLL-проект: File->New->Project->Windows Desktop Wizard->Dynamic link library (.dll), поставив также галку Empty Project, и сняв все остальные: Заодно ...

Читать далее »