Можно автоматизировать процесс только для очень общих и часто повторяющихся вещей, но у каждой конкретной ISA всегда свои заморочки. Вот посмотрите в LLVM: довольно большая часть ассемблеров/дизассемблеров генерируется автоматически, но всё равно рядом всегда есть код на C++ для обоработки команд, не попадающих под стандартные случаи.
И да, «генерируется автоматически» — из описания на специальном языке, которое для большой ISA тоже будет большое.
Так что чуда не будет.
llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/ARMInstrInfo.td?revision=168886&view=markup
Вот например (часть) описания команд ARM. Всего-то 200 Кб, и это на специально созданном для этого языке.