[assembler] [preprocessor] преобразовать имя регистра в его номер
Компилятор не знает некоторых иструкций процессора. Чтобы вставить их в ассемблерный код я написал макрос, который формирует код нужной инструкции из аргументов. Один из аргументов, который должен попасть в код инструкции - номер регистра. Регистр передается макросу в виде "$N", где N - собственно номер регистра (N=0..31). Чтобы засунуть его в opcode нужно преобразовать "$N" в "N" и произвести над N арифметическую операцию. Как бы это сделать средствами препроцессора?
Т.е. хочется как-то так:
Но в этом примере вместо \reg будет подставлено $4 ($5, $6) и компилятор выдаст ошибку. Нужно чтобы вместо $4 подставилось просто 4.
Пока я сделал по тупому: перекладываем значение из регистра-аргумента во временный регистр $1 и формируем opcode с временным регистром. Но хочется избавиться от лишней инструкции.
Re: [assembler] [preprocessor] преобразовать имя регистра в его номер
> ассемблер
Mozilla/5.0 (Android 6.0.1; Mobile; rv:48.0) Gecko/48.0 Firefox/48.0