Acumulador |
Top |
Variable interna que lleva el resultado de las operaciones. Aparte del acumulador principal Acc existen acumuladores secundarios (ACC(-1), ACC(-2), etc). Algunas operaciones producen un desplazamiento (o rotación o stack) de acumuladores para que los estados anteriores no se pierdan (quedan en los secundarios). Algunas operaciones requieren de los datos memorizados en los acumuladores secundarios, como por ejemplo el contador.
Rotación |
Nuevo valor → Acc → Acc(-1) → Acc(-2) .... |
Rotación inversa |
Acc ← Acc(-1) ← Acc(-2) ← Acc(-3).... |
Normalmente en una rotación inversa en ACC queda el resultado de la operación (instrucción) y no el acumulador anterior.
Es la cantidad de acumulaciones o valores guardados. Mas allá de éste los datos se pierden. Cuando es de 32 valores, la cola es del tipo circular (el principio y el fin se conectan).
CP121: desde 1.00, 8; 2.55, 20; 2.73, 32
CP122: desde 1.00, 8; 2.03, 20; 2.22, 32
CP123: desde 1.00, 8; 2.20, 20; 2.32, 32
CP124: desde 1.00, 20; 1.10, 32
CP125: desde 1.00, 20; 1.12, 32
CP126: desde 1.00, 20; 1.06, 32
CP127: desde 1.00, 32
CP128: desde 1.00, 32
CP220: desde 1.00, 32
CP08WG: desde 1.00, 32
CP08EA: desde 1.00, 32
Las instrucciones que hacen una rotación del acumulador son:
Supongamos que la condición es que:
X = 1 si ((A = 1) o (B = 1)) y (C = 1) y (D = 1)
Para que sea 'verdadero' (activado o distinto de cero) C y D deben serlo, y d A y B solo se requiere uno:
LD A ;Acc = A
EQ 1 ;Acc = resultado comparación
LD B ;Acc = B; Acc(1) = comparación anterior
EQ 1 ;Acc = resultado comparación
ORP ;Acc = OR de las 2 comparaciones anteriores
LD C ;Acc = C; Acc(1) = OR comparación
EQ 1 ;Acc = resultado comparación
LD D ;Acc = D; Acc(2) = OR comparación; Acc(1) = comparación anterior
EQ 1 ;Acc = resultado comparación
ANDP ;Acc = Acc AND Acc(1); Acc(1) = Acc(2)
ANDP ;Acc = Acc AND Acc(1)
Supongamos que X = 1 si (A = 0) y (B = 1) y (C = 1) y (D = 1)
LD A ;Acc = A
EQ 0 ;Acc = resultado comparación
LD B ;Acc = B; Acc(1) = comparación de A
EQ 1 ;Acc = resultado comparación
LD C ;Acc = C; Acc(1) = comparación de B; Acc(2) = comparación de A
EQ 1 ;Acc = resultado comparación
LD D ;Acc = D; Acc(1) = comparación de C; Acc(2) = comparación de B; Acc(3) = comparación de a
EQ 1 ;Acc = resultado comparación
ANDP ;Acc = Acc AND Acc(1); Acc(1) = Acc(2); Acc(2) = Acc(3)
ANDP ;Acc = Acc AND Acc(1); Acc(1) = Acc(2)
ANDP ;Acc = Acc AND Acc(1)