Какого черта здесь не так:не может соответствовать строке с 2-значное число в конце
else if ($i ~ /imm[0-9]+/) {
CNT = match($i, /[0-9]+/)
K = substr($i, CNT)
n = int(K)
print $i, "n = ", n, "CNT=", CNT, "K=", K
for (j = 1; j <= n; j++) { BITPATT = BITPATT " i" }
}
Он находит меньшее число (например, imm1, imm3, imm5, imm8), но не в случае номер имеет 2 цифры, например imm11. (Да, ужасный код, но я новичок) Tried/imm [0-9] [0-9]/и/imm [0-9] */и /imm[0-9]./, но нет разница. Я напечатал $ i, чтобы увидеть, что «imm11» есть.
Я не мог заставить его работать даже с 'else if ($ i == "imm11")'.
Если вы размещаете некоторый ввод проб и ожидаемый результат, мы можем вам помочь. Помните - сценарий, который производит вывод, который вы ожидаете от некоторого вводимого вами ввода, является лишь отправной точкой для определения решения, это не обязательно правильное/лучшее решение. –
Ну, вход - это Справочное руководство по архитектуре ARM, редакция ARMv7-A и ARMv7-R, преобразованная в текстовую форму. Я не буду вставлять его здесь. Также мой скрипт длиной 136 строк. Идея состоит в том, чтобы подготовить таблицу инструкций большого пальца с их битовыми шаблонами. Сценарий уменьшает ручное редактирование. Тогда есть и другой скрипт, но он работает хорошо. – turboscrew
Ах, хорошо, я вернусь к вам, как только я найду и изучу документа ARM (что бы это ни было). В то же время, я уверен, что если вы приложите к себе немного усилий, вы можете с небольшим простым примером, который просто демонстрирует эту конкретную проблему, о которой вы просите о помощи. Последний может помочь вам быстрее ... –