Documente Academic
Documente Profesional
Documente Cultură
3.1. ACUMULADOR.
3.1.1. Registro de datos.
f ( x , y , z) 2 x y z 3
; calcular f(x,y,z)
; colocar x en A y en B
add ; R=2x
; colocar resultado en A y en B
sub ; R=2x-y
; colocar z en A y resultado en B
not ; R= z
; colocar resultado en A
add ; R=2x-y+ z
; colocar resultado en A
dec ; R=2x-y+ z -1
; colocar resultado en A
dec ; R=2x-y+ z -2
; colocar resultado en A
dec ; R=2x-y+ z -3
; listo
.fin
1
La transferencia es, en el contexto de los registros, una copia. La información de un registro se
copia a otro sin que necesariamente sea borrado el contenido de origen.
Donde:
; calcular x+4y
; colocar x en A y en B
add ; R=x+y
; colocar R en A
add ; R=x+2y
; colocar R en A
add ; R=x+3y
; colocar R en A
add ; R=x+4y
.fin
; calcular x+4y
; colocar x en B
leer B ; R=x
; colocar y en B
add ; R=x+y
add ; R=x+2y
add ; R=x+3y
add ; R=x+4y
.fin
f ( x , y , z) 2 x y z 3
; calcular f(x,y,z)
; colocar x en B
leer B ; R=x
add ; R=2x
; colocar y en B
sub ; R=2x-y
; colocar z en B
leer B
not ; R= z
; colocar resultado anterior en B
add ; R=2x-y+ z
dec ; R=2x-y+ z -1
dec ; R=2x-y+ z -2
dec ; R=2x-y+ z -3
; listo
.fin
3.3.2. Funcionamiento.
3.3.3. Temporización.
Donde:
; calcular f(x,y,z)
; colocar x en B
leer B ; R=x
add ; R=2x
; colocar y en B
sub ; R=2x-y (tomar nota)
; colocar z en B
leer B
not ; R= z
; listo
.fin
lda dirmem
sta dirmem
Formato
Código de máquina simbólico de Palabra de estado
operación Descripción de la función
C.Op. Código de
Op. Arg. N Z V H P C
Hex argumento
0 x … x x clr 0 1 0 0 0 Cero aL Resultado
1 x … x x nop Ninguna OPeración
2 x … x x in 0 Introducir dato externo
3 x … x x neg NEGativo de a
4 x … x x not NOT a
5 m … m m and dirmem 0 0 AND
6 m … m m or dirmem 0 0 OR
7 m … m m xor dirmem 0 0 XOR
8 m … m m add dirmem ADicionar Dato
9 m … m m sub dirmem SUBstraer
A x … x x inc INCrementar a
B x … x x dec DECrementar a
Leer Dato de memoria en el
C m … m m lda dirmem 0
Acumulador
depoSitar daTo del
D m … m m sta dirmem 0
Acumulador en la memoria
Tabla 3. 1 - Conjunto de operaciones de la USC + memoria de datos
f ( x , y , z) 2 x y z 3
.datos
0 ?? x .oct ?
1 ?? y .oct ?
2 ?? z .oct ?
3 ?? aux .oct ?
argumento
directiva
nombres de las variables
contenido de la memoria
dirección de memoria
.prog
; calcular f
lda x ; cargar x en el acumulador
add x ; duplicar x
sub y ; restar y
sta aux ; guardar resultado intermedio
lda z ; leer z
not ; invertir
add aux ; añadir a resultado parcial
dec ; finalmente, restar 3
dec
dec
.fin
x .oct ?
y .oct ?
z .oct ?
aux .oct ?
const .oct MONTO
La última sentencia podría tener como argumento el valor 3, pero es
importante, en este momento, introducir una nueva directiva: “.def”,
que sirve para asignar un valor a un nombre simbólico, típicamente en
el caso de constantes.
; datos y variables
0 ?? x .oct ? ; variable x
1 ?? y .oct ? ; variable y
2 ?? z .oct ? ; variable z
3 ?? aux .oct ? ; para resultados parciales
4 03 const .oct MONTO ; para guardar la constante
; secuencia de cálculo
.prog
20 in ; leer x
D0 sta x ; y guardar
20 in ; leer y
D1 sta y ; y guardar
20 in ; leer z
D2 sta z ; y guardar
; calcular f(x,y,z)
.fin
3.8. EJERCICIOS.
1. Diseñe el acoplamiento de un segundo acumulador a la salida
(¡y a la entrada!) de la ALU; incluya lógica para control y
temporización.