Пренаписване на С може би е най-доброто решение, но не винаги най-желаното... Аз имам подобен проект, който с удоволствие бих пренаписал, само че след това няма как да го тествам във всички варианти. Затова обмислям да направя симулатор на 8051 евентуално. Ще видим, засега проекта стои на изчакване...
Иначе има различни АРМ ядра. Но няма смисъл да се ползват старите АРМ7/9, т.е. 4-та архитектура. Така че остава само 7-а архитектура, т.е. избора е между COrtex M0 и М3/4. Cortex M0 има смисъл ако проекта е прост и ще се правят много бройки. При малки бройки разликата в цената не е чак толкова голяма и бих препоръчал директно Cortex M3.
Относно подводните камъни... Значи мнемониките не са проблем. Проблемите са от друго естество.
Първо най-вероятно ще ти се наложи да смесиш твоя асемблер с чужд С код (а може би и твой код). Иначе ще ти такова мамата докато подкарваш желязото, щото то не е като простите периферии на 8051.
Второ най-вероятно ще ти се наложи и да дебъгваш, щото с малко повече код + шибаното желязо или трябва да дебъгваш или да умееш да гледаш на боб

Въпреки че има някакви 8051 с JTAG като цяло понятието "дебъгване" при 32-бит процесори дооооста се раличава. Приготви се с търпение както се казва. Но освен всичко останало трябва да се научиш и да пишеш кода, така че да може да се дебъгва. Работата не е само да генерираш код. Трябва да се генерира и дебъг информация за символи, за функции, за стека. Без тая информация дебъгера не бачка като хората, всъщност понякога изобщо не бачка

За съжаление обаче дебъг информацията и разните други прагми и подробности силно зависят от съответния компилатор. За GCC мисля че мога да помогна с основните неща.