El Symbolic Assembly Program (SAP) es un programa ensamblador para el ordenador IBM 704. Fue escrito por Roy Nutt en United Aircraft Corporation y fue distribuido por el grupo de usuarios SHARE a principios de 1956 como Share Assembly Program . SAP sucedió a un programa anterior llamado NYAP1 (New York Assembly Program 1), al que se parecía mucho, [1] y se convirtió en el ensamblador estándar para los usuarios del 704. [2] "Estableció la forma externa de un lenguaje ensamblador que iba a ser un modelo para todos sus sucesores y que persiste casi sin cambios hasta el día de hoy". [3]
DARSIMCO , abreviatura de Dartmouth Simplified Code , fue un lenguaje de programación simple escrito por John Kemeny (quien más tarde co-desarrolló BASIC ) en 1956 que expandió operaciones matemáticas simples en un programa que luego sería ensamblado por SAP.
SAP es un ensamblador de dos pasadas . Puede ejecutarse en un 704 con un mínimo de 4 K palabras de 36 bits de almacenamiento central. Esta configuración permite hasta 1097 entradas en la tabla de símbolos . Se puede utilizar memoria central adicional por encima de los 4 K para permitir entradas adicionales en la tabla de símbolos. [4]
La entrada y salida de datos para SAP se realiza mediante tarjetas perforadas o imágenes de tarjetas en cinta. La entrada se realiza en un formato fijo. [2]
Columnas de tarjetas | Descripción |
---|---|
1-6 | etiqueta o en blanco |
7 | blanco |
8-10 | Código de operación (3 caracteres) o en blanco |
11 | blanco |
12-72 | campo variable |
73-80 | No lo utiliza el ensamblador. Puede contener información de identificación y secuencia. |
La salida consiste en tarjetas perforadas o imágenes de tarjetas absolutas o reubicables. La salida son datos binarios en las doce filas de tarjetas 12, 11 y 0–9. Cada fila contiene dos palabras de 36 bits en las columnas 1-36 y 37-72, indicadas como izquierda (L) y derecha (R) respectivamente. Los datos se numeran convencionalmente por fila y posición, por ejemplo, las columnas 1 a 36 de la fila 9 se designan 9L, las columnas 37 a 72 de la misma fila son 9R. Dentro de una palabra, los bits se designan, de izquierda a derecha, como S (bit de signo) y 1-35, por lo que la posición de bit 13 de la palabra izquierda en la fila 6 se designa 6L13.
La palabra 9L de cada tarjeta es una palabra de control y la 9R es una suma de comprobación opcional . La palabra de control contiene bits que indican, por ejemplo, si los datos de la tarjeta son absolutos o reubicables, si hay o no una suma de comprobación, la ubicación absoluta o nominal de los datos de esta tarjeta y un recuento de la cantidad de palabras de datos que contiene esta tarjeta. [5]