Piense en ello así:
* Instrucciones legibles por humanos: Puede escribir un programa en un idioma como Python o C ++. Estos son comprensibles por los humanos.
* Lenguaje de ensamblaje: Este es un lenguaje de bajo nivel que utiliza mnemónicas (abreviaturas cortas) para representar las instrucciones de la máquina. Está un paso más cerca de la comprensión de la computadora.
* Código de máquina (binario): El lenguaje de ensamblaje se traduce (ensamblado) en el código de la máquina:tensiones de 0 y 1. Este es el único idioma que la CPU entiende directamente. Cada instrucción, como agregar dos números o saltar a una parte diferente del programa, tiene un código binario específico asignado. Este código está determinado por la arquitectura de la CPU (por ejemplo, x86, brazo).
Por ejemplo, una simple instrucción de adición puede verse así en diferentes representaciones:
* ensamblaje (ejemplo, puede variar según la arquitectura): `Agregar Ax, BX` (Agregue el contenido del registro BX para registrar AX)
* El código de la máquina (binario, ejemplo, variará mucho en base a la arquitectura): `0000000000 00001011 00000000 00000001` (Este es un * ejemplo completamente fabricado * para fines ilustrativos. El código de máquina real es mucho más complejo y específico de la arquitectura).
El código binario específico para una instrucción depende en gran medida de la arquitectura de la CPU y el conjunto de instrucciones. Diferentes CPU tienen diferentes conjuntos de instrucciones, lo que significa que entienden diferentes códigos binarios. No hay código binario universal para una instrucción determinada.