Ok, für Bascom werd ich mich hier nicht aus dem Fenster hängen

Wenn "nur" eine Ausgabe via SPI zu machen ist, kannst du weiter parallelisieren über die SPI-Hardware. Das erste Byte schreibst du ins SPI und lässt nen IRQ triggern, in dem das zweite Byte nachgeschoben wird. Den SPI-Interrupt würd ich für Interrupts offnen, um die Latenzzeit zu verringern und es für die externen so transparent wie möglich zu halten.

Das erfordert allerdings ne genaue Planung, damit ein externer IRQ nicht zwischen das 1. und 2. Byte was dazwischenfummelt und die einzelnen ISR s sich verstehen. Den SPI kannst du bis F_CPU/2 Takten, also bis 10MHz (kein Problem für die meisten HW-SPIs) bei 20MHz CPU-Takt. Das ist eine theoretische Obergranze von über 1MByte/Sek. Kommt eben drauf an, wie fix deine Software ist.

Nochwas zu "Hochsprache". Hochsprache bedeutet nicht automatisch, daß es langsam ist. Das hängt davon ab, was unter der Oberfläche an Optimierung passiert -- oder eben nicht passiert. Es ist z.B. überflüssig, immer alle 32 Register zu sichern (für Compiler-Entwickler ist es natürlich das bequemste ). Und C mutet aus Sicht moderner objekt- oder aspekt-orientierter Sprachen eher an wie ein portierbarer Assembler, weniger wie eine Hochsprache...