Ho anche un paio di progetti con interfacce tra asm e C, oppure tra asm e Basic (gulp!).
In programmi assembler complessi spesso utilizzo uno stack frame completo, con variabili locali (automatiche) e passaggio degli argomenti sullo stack, per non sporcare tutto con troppe variabili globali.
Su certe architetture (vedi i pic a 8 bit) e' invece obbligatorio, in assembler, usare solo variabili globali.
Ritornando al C: io sono passato dal C, al C++. Uso gli oggetti dove mi servono, e non li uso dove sono inutili.
Per esempio, in un "driver" video per pilotare un LCD grafico, la parte a basso livello l'ho fatta in C liscio, mentre ho usato gli oggetto per le parti superiori dell'interfaccia verso il programma.
Per il C, ti consiglio il Kernighan/Ritchie. Per il C++ lo Stroustrup, ultima edizione (mi sembra sia la quarta). Mi sa che lo Stroustrup pero' costi di piu' dei 52 euro del testo citato in precedenza

Conosco anche QuickBasic e VB, ma li odio, letteralmente.
