leon_ (01.12.2011 17:07 - 17:24, просмотров: 159) ответил Evgeny_CD на Вход - 32 битная команда ARM7 (или подобное). На выходе - индекс массива, в котором лежит указатель на обработчик этой группы команд.
С этого и надо было начинать. Возможно, это д.б. массив структур из 2-х значений – одно 4-х байтовое значение, второе 1-но байтовый признак того, чем является 4-х байтовое значение маской или значением по маске.
Преобразование производится путём последовательного перебора этих структур.
Сначала идёт маска, потом ряд значений, которые интересуют нас после применения данной маски, и так далее до конца массива. Конец массива может также обозначаться соответствующим признаком.
Порядок применения масок и значений д.б. такой, чтобы из-за более общей маски не пропускались некоторые интересующие значения.
Или сначала проверяются более вероятные значения.
При переборе значений (но не масок) наращивать счётчик, который и будет результатом функции при правильном совпадении. Разрядность счётчика - какая уж получится. Последнее его значение будет означать, что совпадение не найдено.
Объём массива для 8-битного выходного значения получается не больше приблизительно 2,5 килобайт.
Да медленно, но универсально.