Salut zerospyware,
Pour commencer, l'assembleur n'a pas rien à voir avec le langage machine. Comme tu l'as dis, le langage assembleur est le plus proche de la machine, compréhensible par l'homme je dirais et pas par l'humain. En effet il ne s'agit pas d'une espèce (l'humain) tentant en vain de communiquer avec une autre (la machine), la première utilisant un langage à sa portée pour être comprise par la seconde. L'homme a inventé le langage machine qui consiste à se faire succeder des instructions destinées au microprocesseur (codées en hexadecimal) ensuite traduites en binaire.
Le langage assembleur ne fait que mettre des alias sur ces instructions, et les organiser de manière claire pour programmer. Là est tout son intérêt donc hors de question de coder en langage machine! En revanche, je t'encourage à l'apprendre, pas vraiement parce qu'il est différent - je viens de le dire - mais parce tu comprendra mieux ce que ton code implique physiquement dans le microprocesseur. Tu devriendra d'ailleurs certainement meilleur en assembleur.
Voilà donc un exemple fictif :
cette ligne de commande assembleur :
lxi sp, 20C2h //place le pointeur de pile à l'adresse 20C2 dans la mémoire RAM
se traduit en langage machine de cette manière :
adresse | données (1 octet)
0000 | 69 //Instruction micropro qui demande de placer les 2 octets suivant dans la paire de registres SP
0001 | C2 //Adresse basse sur 1 octet
0002 | 20 //Adresse haute sur 1 octet
Comme tu le vois, de l'assembleur [ lxi sp, 20C2h ] au code compilé [ 69 C2 20 ], il n'y a pas tout un monde!