Суть в том, что такой язык «разметки» (или «программирования») должен позволять описывать отдельные биты, а так же способы их группировки в битовые поля.
Например в коде инструкции биты, обозначающие код регистра могут находится в несмежных позициях относительно начала инструкции. Нужно уметь описать преобразование имени регистра в код и в биты, и в обратную сторону.
Просто какого-нибудь ASN.1 не хватит, так как он (я так предполагаю) не позволяет описывать преобразования битовых полей или битовых значений (не умеет «вычислять»). С другой точки зрения, вычисления в стиле арифметики (сложение/вычитание) не требуются. Основные операции - это перестановки, склеивания и разрезания.