Chaos Constructions 2021 party report



— вы организовываете пати?
— нет, только показываем
— кросивое...


2020-й год по всем хорошо известным причинам выдался максимально сложным — пандемия, локдауны, отмены патей или переносы в онлайн. Тем временем, сиквел 2021-й подкрался незаметно, а вместе с ним наконец-то стало возможным встретиться вживую, пообщаться, обменяться опытом (или напитками :), ну и конечно же попативать и поотрываться.

В этом году я смог попасть на Chaos Constructions 2021 в Питере, и могу сказать лишь одно — несмотря на все неурядицы и самые худшие ожидания, пати однозначно удалась! А чтобы окончательно убедить всех вас, дорогих софасценеров, хотелось бы поделиться своеобразным отчетом со своими впечатлениями и мыслями :)

Как обычно, дисклеймер — под катом очень много фоток, поэтому осторожно, трафик!


Читать дальше →

Принципы кодирования инструкций Intel x86(-64) или "ехал префикс через префикс"

Введение

С давних пор меня интересовало то как процессоры Intel x86 кодируют свои инструкции.
Будучи в детстве владельцем клона ZX Spectrum я уже тогда сталкивался с таблицами кодов инструкций его процессора Z80, как например тут: clrhome.org/table/
В таком виде очень хорошо просматривается принцип кодирования этих инструкций — наглядно видно как они упорядочены и по каким битам раскиданы.
Но вот для x86 таких таблиц как то не удавалось найти, а то как эти коды пояснялись в руководствах от самого Intel было несистематизировано и поэтому не воспринималось.
Однако пару месяцев назад я наконец то наткнулся на табличный вид однобайтовых инструкций от i8086 до i386, поразглядывал его и проникся тем что тут и как кодируется.
Более того — в процессе этого обзорного ознакомления я проникся еще тем как эволюционировала система команд x86 с поколениями процессоров и решил вкратце эти вехи законспектировать тут. Это ни в коем случае не полное справочное руководство, но скорее обзорное знакомство вместе с историческим экскурсом которое возможно поможет кому то быстро понять основные принципы кодирования инструкций x86 перед более углубленным изучением по таблицам.

Читать дальше →