2011-08-26 15 views
5

Esta es una pregunta wiki para recopilar referencias útiles para el aprendizaje de lenguajes ensamblados para varias arquitecturas.Materiales para leer varios lenguajes de ensamblaje?

Hace poco intenté leer el código fuente de Basic Pdp-1 Lisp de 1964, y tuve que buscar extensamente materiales de referencia para que el código tuviera el más mínimo sentido. Siento que los enlaces que he recogido puede resultar útil para cualquiera que trate de leer el código de la misma antigüedad, como SpaceWar!

Así que una buena respuesta debería comprender:

  • El nombre de la arquitectura
  • Un no -trivial programa en lenguaje ensamblador
    (Este es el verdadero foco de la cuestión:. un programa clásico que vale la pena el montaje de aprendizaje con el fin de leerlo)
  • manuales de instrucciones y referencias para entender el programa

Comenzaré con mis referencias recopiladas para leer Pdp-1 LISP.

Respuesta

2

x86:

  • Here 'sa manual con más de 1400 páginas y algunos ejercicios incluidos, algunos capítulos se centran en cosas como el álgebra de Boole y organización del sistema de
  • documentación de Intel y manuales here, que no deberían tener esto antes de unos pocos años;)
  • An optimization guide (cosas bastante avanzada)
  • Here puede encontrar un ensamblador para desarrollar aplicaciones win32, tanto en la consola como en la ventana. También incluye el SDK de Windows y una descripción de todas las API de Win32
  • This parece que hay una buena GAS (GNU Assembler) manual de si está desarrollando en Linux
  • Some examples (ventanas)
+0

@evilpie, buen trabajo para agregar información a la respuesta, en lugar de agregar una nueva respuesta. Mantiene las cosas ordenadas. Hice +1 en otra publicación suya (buena por sus propios méritos), ya que no puedo votar aquí. –

0

PDP-1 LISP

pdf de Fuente incluidos artículo explicativo y símbolos listados: http://www.google.com/url?sa=D&q=http://www.computerhistory.org/collections/accession/102650371

Una lista de origen ASCII: http://hack.org/mc/software/lisp.p2

Una buena visión general: http://en.wikipedia.org/wiki/PDP-1

Manual de Pdp-1, incluido el conjunto de instrucciones de referencia: http://www.bitsavers.org/pdf/dec/pdp1/F15B_PDP1_Handbook_1961.pdf

macro manual asembler, describiendo cómo las instrucciones están formados por la aritmética: http://www.bitsavers.org/pdf/dec/pdp1/PDP-1_Macro.pdf

presentación alternativa de conjunto de instrucciones que ilustra componibilidad de turno y operan instrucciones: http://simh.trailing-edge.com/docs/architecture18b.pdf

Este último enlace es vital para comprender trucos tales como la primera instrucción:

-/Lisp interpreter 3-20-64, part 1 
000004     4/ 
-/go 
000004   go, 
000004 764607   hlt+cla+cli+7-opr-opr 

Esto podría haber sido escrita con menos de ofuscación (pero menos información semántica) como:

opr 4607 

O con más semántica (y aún más ofuscado) como:

hlt+cla+cli+clf+07-opr-opr-opr 

Pero desde clf == opr eso sería tonto

Un último recurso crucial para la programación de ensamblaje de la era de los 60 es Knuth, vol. 1 (1ed o 2ed). Esto explica algunas de las automutilaciones más básicas que exhibe el código pdp-1.Asamblea

+0

Ver [esto respuesta mía] (http://stackoverflow.com/a/7452758/733077) para obtener una descripción del código de automodificación PDP-1 en llamadas a procedimientos. –

Cuestiones relacionadas