Je joue pas beacoup sur mobile, mais un jeu sur lequel je reviens fréquemment (et dispo sur steam linux, mac et PC DRM free) est Human Resource Machine.
Le jeux vous fait coder en pseudo assembleur à base de glisser déposer, avec des puzzles d'abord simples puis de plus en plus corsés. Et à partir d'un certain niveau, en plus de résoudre le puzzle, il y a deux challenge d'optimisation, le code le plus concis et le runtime le plus efficace. Les deux demandent pas mal de créativité.
Je recommande chaudement.
Je n'y connais rien non plus mais je crois que le code assembleur est très limité dans les OS comme Linux. La plupart du code est écrit dans un langage de haut-niveau une fois que l'assembleur a fait son travail de "démarrage".
Sinon j'ai fait un peu de Game Boy Advance il y a bien longtemps. Le seul code assembleur vraiment nécessaire est la détection de l'affichage, c'est à dire la boucle qui va rafraîchir l'écran à intervalle régulier. Mais tout ça se fait en quelques lignes d'assembleur, tout le reste est un appel à des fonctions haut-niveau en C ou autre.
Apparement sur un noyau Linux vieux de 3 mois, il y aurait tout de même près de 300000 lignes d’assembleur. C’est une petite partie du total, mais c’est quand même loin d’être négligeable.
https://openhub.net/p/linux/analyses/latest/languages_summary