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