Quando eu estava estudando montagem na universidade, fazíamos pequenas aplicações o tempo todo. Tivemos tarefas como entrada, saída, diferentes somas e tipos (para usar loops), 'desenhar' algumas imagens, como círculos, com pontos, etc.
Também houve grandes projetos. O mais interessante é escrever um driver. Você pode pegar um dispositivo pequeno, como o mouse, e tentar implementar um driver para ele. Se você também adicionar alguns testes para descobrir, por exemplo, onde está o problema, caso algo esteja errado, isso seria uma ótima experiência. Escrever um driver corretamente requer um bom conhecimento do idioma, algumas pesquisas sobre o dispositivo e as portas e também partes de código para teste.
Este é um projeto que você não chamaria de pequeno, mas se você puder implementar tudo isso, certifique-se de conhecer a linguagem assembly!
libc
e UNIX ferramentas , como:strcpy
,strcat
, funções de conversão, como astrtoi
/itostr
,strtol
/ltostr
, uma miniprintf
, minicat
... deve ser suficiente para obter você começou e o restante da libc está à sua disposição para mais idéias de projetos.