¿Cuál es un buen comienzo para aprender programación de bajo nivel?

Suponiendo que, como Alex Fi, quieres aprender a ensamblar, acabo de buscar Z80 y los procesadores de hardware 8080. Todavía hay mucha documentación y software para estos “viejos” procesadores en Internet. Es posible que también necesite un programa de ensamblador y un programa de simulación, si está trabajando en un entorno que no es de Unix (por ejemplo, Windows). El primer documento (un pdf) que abrí en el z80 tenía una definición básica de los elementos de hardware en el entorno, por lo que no debería ser difícil encontrar la información necesaria.

Muchos de los documentos que encontrará no están escritos como muchos manuales de instrucción, como los libros de hoy. Aprendí todo el lenguaje Fortran de un manual de 100 páginas (hace años). Los autores de la documentación inicial tenían la idea de decir todo una vez. Ellos pensaron que si no lo entendías, volverías y lo releerías hasta que tuviera sentido. Si eres un explorador, te divertirás mucho descubriendo los primeros días de la CS.

C es uno de los mejores lenguajes que actúan como un puente entre la programación de bajo y alto nivel. Por lo tanto, mi sugerencia sería comenzar con C. Aprenda los conceptos básicos de C, comience a programar y, a medida que vaya avanzando, seguramente comenzará a aprender la programación de bajo nivel.
Mucha suerte con tu programación …… ..

1. Aprende C, si aún no lo sabes.
2. Descargue los manuales de Intel x86, o el pdf de AMD analógico.
3. Leer * partes básicas * de ellos.
4. Participe en la comprensión del kernel de Linux, ya que está fácilmente disponible y puede jugar con él en la máquina virtual.
Controladores de dispositivos Linux, tercera edición
Entendiendo el núcleo de Linux, Tercera Edición: Daniel P. Bovet, Marco Cesati: 9780596005658: Amazon.com: Libros

Yo iría con C o C ++.
Arrancando los primeros con los fundamentos de la programación (Matemáticas lógicas)
Siguiendo con algún algoritmo de base.
Y después de eso C o C ++

Tendrá que hacer casi todo, pero podrá controlarlo todo, manejar la memoria, trabajar en gráficos, controlar el sistema operativo, etc.

Nicolas
Pareto para desarrolladores – Cómo ser un excelente programador

Aprende C ++ / C si aún no estás familiarizado con él. No creo que ningún libro sea mejor que K&R, ya que es preciso y completo. Aprenda ensamblaje, puede usar Arte de ensamblaje para ese o algún recurso más nuevo. Si desea dominar cualquiera de estos, necesita algún proyecto que realmente requiera programación de bajo nivel como un controlador de dispositivo. Puede usar proyectos de código abierto existentes para aprender sobre las complejidades involucradas en el uso de un lenguaje de bajo nivel.

Asumir un nivel bajo aquí significa más cercano al entorno de ejecución o la arquitectura del sistema operativo, y luego un ensamblador para una de las arquitecturas simples para el procesamiento integrado es una respuesta.

Prueba Minix y el libro de Tannenbaum. ¡Creó todo este sistema operativo para enseñar programación de bajo nivel!