Вот как раз канал CS использовать надо обязятельно. Именно по его снятию (т.к. обычно он инверсный) и начинается протокол обмена по SPI. Что позволяет сажать на 1 линию несколько устройств, разделив их сигналы CS.
Возьмите документацию на любую м/сх, работающую по SPI. В документации на нее обычно достаточно подробно описан SPI.
Кстати, Oran-be несколько лукавит

Приведенный пример на асме работать, наверное будет (в нем есть маааленькая неточность

), только частота передачи будет равна тактовой процессора, т.к. не предусмотрены циклы ожидания. Если сопрягаемая м/сх это допускает - нет проблем.
Затравленный и прижатый к стене кот превращается в тигра. Мигель Сервантес.