Cómo empezar con el código de máquina

Código de máquina, cuanto más bajo se puede obtener …

Pues los conceptos en código de máquina son:

  1. nunca use el código de la máquina, use un ensamblador para traducir el código para usted
  2. registros (que están en la CPU),
  3. direcciones de memoria, y
  4. Contenidos tanto de los registros como de las direcciones de memoria.

Un registro importante es la PC (contador de programa), que es un registro que indica qué ubicación de memoria está ejecutando la CPU o dónde se está ejecutando el programa. Es importante porque los cambios de GOTO que se registran …

También existe el concepto de pila: un método llama a otro, luego debe volver al método anterior, al siguiente método para ejecutar, que es una dirección de retorno y se mantiene en la pila.

Ahora, si solo quieres aprender, hasta ahora has aprendido lo básico.

¿Quieres aprender más? ¿Por qué?

No veo otra razón que la simple curiosidad. Si realmente necesita un código de ensamblaje, probablemente esté escribiendo un kernel o un controlador de dispositivo, pero incluso estos están escritos en C en estos días …

Bien, supongamos que necesita ensamblaje …

La realidad es que necesitas aprender de los maestros, y no hay nada que te pueda enseñar más que el compilador en sí:

Preguntas frecuentes sobre DJGPP: cómo hacer que GCC genere un código de ensamblaje

Puede leer el código de ensamblaje y ver cómo se hacen las cosas en la vida real.

La gente se quejará: pero eso no es eficiente !!! Hazlo a mano, es mucho más eficiente !!!

Eso es verdad.

Pero la gente comete errores. Hay errores en los programas, errores en los compiladores, porque los compiladores son programas, errores en el hardware, como la propia CPU, porque la CPU debe ser diseñada por alguien, ¿no es así?

Así que lleva tiempo y tiene errores.

Y algunas CPUs son diferentes. Manera diferente o algo diferente.

Y no puede simplemente tomar un programa escrito para una CPU y ejecutarlo en otro.

A menos que estés utilizando Java.

Entonces, ¿cuál es la ventaja de usar C?

La mayoría de las diferencias en la CPU son manejadas por el compilador de C. La mayoría de los errores en la CPU son manejados por el compilador de C. Las empresas que crean compiladores están informadas de estos errores y solucionan esos errores.

Ejemplos:

Errores de CPU – OSDev Wiki

Vimos algunos errores muy malos de la CPU Intel en 2015, y deberíamos esperar ver más en el futuro

Recordando viejos errores de la CPU.