Il modo in teoria c'è, ma presuppone niente assembly inline (dato che non hai il compilatore C++ per il processore modificato).
Ti crei un file header con le dichiarazioni delle funzioni da usare e poi scrivi direttamente in assembly il codice della funzione stessa per il processore modificato. Al momento del linking, il linker collegherà la chiamata C al codice assembly del processore modificato.
Il modo di collegare la chiamata C alla parte assembly (inteso come passaggio di parametri da C ad Assembly può variare dall'Assembler che usi, ma al lato C della faccenda questo non interessa:
al C è sufficiente dichiarare extern la chiamata al codice della libreria in esame.
In pratica con:
extern "C" return_type funzione(tipo_argomenti argomenti);
dici al compilatore: tu compila tranquillamente il codice oggetto perché da qualche altra parte esiste il codice effettivo. Quando farai il linking, sarà il linker a fare il collegamento tra quella chiamata e il codice nella libreria modificata. Ovvio che se non esiste tale codice nella libreria modificata avrai errore.
Per inciso è quello che in genere si fa anche con librerie esterne C, solo che nel tuo caso, non avendo un compilatore C per il processore modificato, non puoi usare assembly inline (con cosa lo compili il codice?), ma solo Assembly puro.
La rogna adesso diventa come passare i dati C alla parte Assembly e recuperarli, ma se conosci il tuo Assembler non dovrebbe essere un problema.