Practico introductorio

Anuncio
Curso 2011
ARQUITECTURA Y ORGANIZACIÓN DE COMPUTADORAS
Práctica Para el Laboratorio – Introducción
Objetivos de la Práctica
Que el alumno:
• Se familiarice con el simulador MSX88.• Reconozca las instrucciones básicas del lenguaje ensamblador• Reconozca el funcionamiento de las estructuras básicas en assembler.Bibliografía:
• Apunte N° 4, “Lenguaje Assembly”.
• Manual del simulador MSX88.
• Set de Instrucciones de MSX88.
• Apuntes de la Cátedra.
Para cada programa propuesto, deberá editar el archivo fuente con extensión asm (ej:
ejer1.asm), luego ensamblarlo usando asm88.exe (comando: asm88 ejer1.asm) y
enlazarlo con link88.exe (comando: link88 ejer1.o). Cada archivo obtenido con extensión
eje (ej: ejer1.eje) deberá ser cargado y ejecutado en el simulador MSX88.Para ejecutar un archivo en el simulador, debe estar guardado en la misma carpeta del
MSX88, para cargarlo en la memoria se ha de ejecutar el siguiente comando dentro del
área de comandos del simulador (ojo, no es un comando de DOS):
L prueba <Enter>
Por último, para ejecutar el programa, se utiliza el comando
G <Enter>
Podremos observar en la pantalla como se obtienen instrucciones, se las decodifican,
como se producen movimientos de datos, operaciones aritméticas, etc. Si se desea
volver a ejecutar el programa, se deberá modificar el registro IP para que apunte a la
dirección de comienzo del programa con el comando
R IP 2000 <Enter>
que coloca en el registro IP (dirección de la próxima instrucción) la dirección de la celda
donde está la primer instrucción del programa (por defecto, 2000h en el simulador).
Éstos y otros comandos más se encuentran detallados en el manual del simulador.
Curso 2011
ARQUITECTURA Y ORGANIZACIÓN DE COMPUTADORAS
1
2
3
5
7
11
12
4
10
9
6
8
13
Dada la pantalla principal del Simulador MSX88:
Describa brevemente cada uno de sus componente (los cuales se encuentran
numerados).
1. Definición de variables
a. Defina una variable tipo Byte llamada variable1 con un valor inicial
numérico decimal 50,
b. luego defina la variable anterior con un valor en hexadecimal.
c. Defina una variable tipo Word llamada variable 2 con un valor inicial no
especificado.
d. Defina un valor constante.
e. Defina una tabla de 10 posiciones llamada tabla1 que contenga los valores
numéricos del 0 al 9.
2. Cual es la directiva del ensamblador que permite cambiar la dirección a partir de
la cual se asignarán a las variables e instrucciones? Ejemplifique.
3. Cual es la instrucción que permite realizar movimientos de datos, entre registros o
de un registro a la memoria? Ejemplifique.
4. Deseo sumar dos valores decimales 45 + 98:
a. que instrucción de assembler debo utilizar para realizar la mencionada
operación?
b. Ejemplifique. (para ello primero debe definir variables que contengan los
valores a sumar)
c. En cual de las variables se guarda el resultado?
d. Ejemplifique la suma de dos valores en el lenguaje de programación
pascal.
5. Deseo restar dos valores decimales 98 – 45:
a. que instrucción de assembler debo utilizar para realizar la mencionada
operación?
Curso 2011
ARQUITECTURA Y ORGANIZACIÓN DE COMPUTADORAS
b. Ejemplifique. (para ello primero debe definir variables que contengan los
valores a sumar)
c. En cual de las variables se guarda el resultado?
6. Incremento, decremento
a. Se desea incrementar la variable VAR1 del tipo byte definida con el valor
0, ejemplifique en lenguaje ensamblador.
b. Ejemplifique el punto a en lenguaje Pascal.
c. Se desea decrementar la variable VAR2 del tipo byte definida con el valor
100, ejemplifique en lenguaje ensamblador.
d. Ejemplifique el punto c en lenguaje Pascal
7. Describa que realiza el siguiente código
ORG 2000h
MOV AX, 20
Lazo: ... ;
... ; <Instrucciones a repetir>
... ;
DEC AX
JNZ Lazo
Fin: JMP Fin
END
a. Cual sería la instrucción análoga en lenguaje Pascal?
b. Al pasar a la etiqueta Fin que se produce y porque se realiza de dicha
manera? Como se podría subsanar este inconveniente?
c. Que tipo de salto es JNZ?
8. Cual es la diferencia entre BX y [BX]?
9. Estructuras de control en Assembler (Decisión):
a. Dado el siguiente código:
b. Analice y describa que realiza el mismo
c. Ejemplifique el código en su análogo en lenguaje Pascal
d. Que tipo de salto es JZ?
CMP AH, 4
JZ Then
JMP Fin_IF
Then: MOV BH, 2
INC BX
Fin_IF: HLT
e.
f.
g.
h.
Dado el siguiente código:
Analice y describa que realiza el mismo
Ejemplifique el código en su análogo en lenguaje Pascal
Que tipo de salto es JMP?
CMP AL, 4
JZ Then
JMP Else
Then: MOV BL, 1
INC CL
JMP Fin_IF
Else: MOV BL, 2
DEC CL
Fin_IF: HLT
Curso 2011
ARQUITECTURA Y ORGANIZACIÓN DE COMPUTADORAS
10. Estructuras de control en Assembler (Iteración
a. Dado el siguiente código en lenguaje pascal: escriba su análogo en
assembler.
AL := 0;
FOR CL := 1 TO 10 DO
AL := AL + AL;
b. Analice y explique que realiza el siguiente código
MOV AL, 0
MOV CL, 10
Iterar: CMP CL, 1
JZ Fin
ADD AL, AL
DEC CL
JMP Iterar
Fin: HLT
c. Ejemplifique de que manera implementaría un While en assembler
(escribir su análogo en pascal)
d. Ejemplifique de que manera implementaría un Repeat-Until en assembler
(escribir su análogo en pascal)
e. Cual es la diferencia entre ambas estructuras?
11. Arreglos y tablas:
Dada la siguiente tabla, describa que hacen ambos códigos y marque las
instrucciones análogas.
const
tabla: array[1..10] of Word = {5, 2, 10,
4, 5, 0, 4, 8, 1, 9};
var
max: Word;
begin
max := 0;
for i := 1 to 10 do
if tabla[i] > max then
max := tabla[i];
end.
ORG 1000h
tabla dw 5, 2, 10, 4, 5, 0, 4,
8, 1, 9
max dw 0
ORG 2000h
MOV BX, OFFSET tabla
MOV CL, 1
MOV AX, max
Loop: CMP [BX], AX
JC Menor
MOV AX, [BX]
Menor: ADD BX, 2
INC CL
CMP CL, 10
JNZ Loop
MOV max, AX
HLT
END
INFORME:
Considere los siguientes ITEMS en el desarrollo de su informe de laboratorio.
1. Presente un informe escrito donde consigne el procedimiento, resultados,
análisis e interpretación de los resultados.2. Consigne en forma clara los programas implementados, junto con una breve
descripción funcional. La explicación no debe limitarse a comentar cada una de
las líneas de código. Esto es al análisis de resultados.3. Recuerde incluir en el informe: resultados obtenidos, observaciones, conclusiones
y bibliografía.-
Descargar