Ejercicio 1.2.
7 Considerar la siguiente arquitectura de una
computadora sencilla:
Memoria central
Dispositivo Dispositivo
de entrada Registro A
de salida
Registro C Registro B
ALU
Suponer que el lenguaje de bajo nivel (ensamblador) para
esta máquina consta de las siguientes instrucciones:
Instrucción Significado
CP A, B Copia el contenido del registro A en el B.
CP B, A Copia el contenido del registro B en el A.
CP A, C Copia el contenido del registro A en el C.
CP C, A Copia el contenido del registro C en el A.
ADD Suma los contenidos de A y B, dejando el
resultado en A.
SUB Resta al valor que hay en B el valor que
hay en A (B-A), dejando el resultado en
A.
MULT Multiplica los contenidos de A y B,
dejando el resultado en A.
LOAD dirección Carga (copia) en el registro A el
contenido de la posición de memoria
referenciada por su dirección.
STORE dirección Almacena (copia) el contenido del
registro A en la posición de memoria
referenciada por su dirección.
INP Lee del teclado un valor y lo almacena en
A.
OUT Muestra en pantalla el valor almacenado
en A.
1
Un programa para sumar dos números en este lenguaje
tendría las siguientes instrucciones:
INP
CP A, B
INP
ADD
OUT
Escribir los correspondientes programas en este lenguaje
que permitan efectuar las siguientes operaciones:
• X = entrada1 + entrada2 + entrada3
• Intercambiar los contenidos de las posiciones de
memoria central cuyas direcciones son: 01101100 y
00101010.
• Mostrar en pantalla el resultado de la siguiente
operación: x2-x*y+y2, donde los datos asociados a las
variables x e y están almacenados en las posiciones de
memoria central cuyas direcciones son: 01101100 y
00101010, respectivamente.
Soluciones:
• X = entrada1 + entrada2 + entrada3
Instrucción Contenidos de los
registros
A B
INP x1
CP A,B x1 x1
INP x2 x1
ADD x1 + x2 x1
CP A,B x1 + x2 x1 + x2
INP x3 x1 + x2
ADD x3 + x1 + x2 x1 + x2
OUT x3 + x1 + x2 x1 + x2
2
• Intercambiar los contenidos de las posiciones de
memoria central cuyas direcciones son: 01101100 y
00101010
Instrucción Contenidos de los registros
A B
LOAD 01101100 x
CP A,B x x
LOAD 00101010 y x
STORE 01101100 y x
CP B,A x x
STORE 00101010 x x
• Mostrar en pantalla el resultado de la siguiente
operación: x2-x*y+y2, donde los datos asociados a las
variables x e y están almacenados en las posiciones de
memoria central cuyas direcciones son: 01101100 y
00101010, respectivamente
Instrucción Contenidos de los registros
A B C
LOAD 01101100 x
CP A,B x x
MULT x2 x
CP A,C x2 x x2
LOAD 00101010 y x x2
MULT x*y x x2
CP A,B x*y x*y x2
CP C,A x2 x*y x2
SUB x*y- x2 x*y x2
CP A,C x*y- x2 x*y x*y- x2
LOAD 00101010 y x*y x*y- x2
CP A,B y y x*y- x2
MULT y2 y x*y- x2
CP A,B y2 y2 x*y- x2
CP C,A x*y- x2 y2 x*y- x2
SUB y2- x*y + x2 y2 x*y- x2
OUT y2- x*y + x2 y2 x*y- x2