Tienes que saber qué sistema vas a programar y la cpu que usa. Hoy en día se programa en C en cualquier sistema, aunque si es un sistema muy limitado se puede usar ensamblador de la máquina en cuestión: Z80, 8080, etc.
Pero por los hilos que has puesto, para programar en ensamblador hay que conocer la arquitectura del sistema al dedillo. Y aprender conceptos como puertos, interrupciones, framebuffers, llamadas al sistema, registros. No será BASIC el lenguaje que buscas?