Um ASM kommst du an gewissen stellen nicht herum. Du kannst aber versuchen dir einige Funktionen in ASM zu schreiben mit denen du auf Ports zugreifen kannst.
Dann könntest du einen Großteil mit C machen.
Aber an gewissen Stellen wirst du zumindest für die grundlegenden Sachen musst du ASM benutzen, da manche Befehle die dort benötigt werden von C nicht unterstützt werden.
Naja, es gibt auch Leute, die ganze Betriebssystem in Forth, Aba, Pascal und Obol programmiert haben, aber es kommt halt drauf an, inwieweit man auf den Lowlevel zugreifen kann.