Práctica de Problemas No 6

Anuncio
Introducción a las Computadoras Digitales
Año 2008
Práctica de Problemas No 6
Lenguaje Ensamblador para el Microprocesador 8086
Ejercicio 1
Explique los siguientes términos: a) segmento; b) desplazamiento (offset); c) lı́mite de dirección.
Ejercicio 2
¿Cuáles son: a) las clases de segmentos que se encuentran en el microprocesador 8086; b) su tamaño
máximo?
Ejercicio 3
Señale el objetivo de cada uno de los registros de segmentos presentes en el microprocesador 8086.
Ejercicio 4
El DOS realiza ciertas operaciones cuando carga un programa .EXE para su ejecución. ¿Qué valores
inicializa el DOS en los registros CS e IP? ¿en los registros SS e SP? ¿en los registros DS y ES?
Ejercicio 5
a)¿Cuál es el objetivo de la pila?
b) ¿De qué forma se define la pila para un programa .COM y para uno .EXE?
c) ¿Cuál es el tamaño de cada entrada de la pila?
d) ¿Dónde se encuentra inicialmente el tope de la pila y como es direccionado?
Ejercicio 6
¿Cuál es el propósito de la instrucción INT?
Ejercicio 7
a) ¿Cuál es el objetivo de un procedimiento?
b) ¿Cómo se define el inicio y finalización de un procedimiento?
c) ¿Cuándo definirı́a un procedimiento como FAR y cuándo como NEAR?
Ejercicio 8
Explique qué enunciados END particulares tratan la finalización de a) un programa; b) un procedimiento;
c) un segmento.
Ejercicio 9
Dé los nombre STKSEG, DATSEG y CDSEG a los segmentos de la pila, de los datos y del código,
respectivamente. Codifique el ASSUME necesario.
1
Laboratorio de Sistemas Digitales
Introducción a las Computadoras Digitales
Año 2008
Ejercicio 10
Para una instrucción con dos operandos, ¿cuál es el fuente y cuál el destino?
Ejercicio 11
¿De qué manera significativa difieren las siguientes instrucciones en su ejecución?
MOV AX, 325AH
MOV AX, [325AH]
Ejercicio 12
a) ¿De qué manera significativa difieren las siguientes instrucciones en su ejecución?
MOV BX, 0
MOV [BX], 0
b) Para el segundo MOV, ¿qué tipo de direccionamiento está involucrado con el primer operando?
Ejercicio 12
Explique la operación de la instrucción
MOV CX, [BX+SI+4]
Ejercicio 13
En la siguiente instrucción hay un error. Encuéntrelo y corrı́jalo.
MOV [BX], [SI]
Ejercicio 14
Dada la siguiente definición de datos, encuentre los errores en los enunciados y codifique las instrucciones
necesarias para corregirlos.
BYTE1 DB ?
BYTE2 DB ?
WORD1 DW ?
a) MOV BYTE1, BYTE2
b) MOV AL, WORD1 ; el operando 1 es correcto
c) MOV BL, 034AH ; el operando 2 es correcto
Ejercicio 15
a) ¿Cómo afecta la instrucción INT a la pila?
b) ¿Cómo afecta la instrucción IRET a la pila?
Ejercicio 16
a) ¿Cuál es el tamaño máximo de un programa .COM?
b) Para un programa fuente que será convertido a formato .COM, ¿qué segmentos puede definir?
c) ¿Por qué debe codificar ORG 100H al inicio de un programa que será convertido a formato .COM?
d) ¿Cómo maneja el sistema el hecho de que usted no define una pila para un programa .COM?
2
Laboratorio de Sistemas Digitales
Introducción a las Computadoras Digitales
Año 2008
Ejercicio 17
Explique estos términos: a) dirección corta; b) dirección cercana; c) dirección lejana.
Ejercicio 18
¿Cuál es número máximo de bytes que una instrucción JMP cercana, un LOOP y un salto condicional
pueden saltar?
Ejercicio 19
Codifique una rutina usando LOOP que calcule la sucesión de Fibonacci: 1, 1, 2, 3, 5, 8, 13, ... (Excepto
los dos primeros términos, cada número es la suma de los dos anteriores). Establezca el lı́mite en 12 vueltas.
Ejercicio 20
Suponga que AX y BX contienen datos con signo y que CX y DX contienen datos sin signo. Determine
las instrucciones CMP y de salto condicional necesarias para lo siguiente: a) ¿El valor de DX excede el de
CX? b) ¿El valor de BX excede al de AX? c) ¿El CX es igual a cero? d) ¿Existe un desbordamiento? e)
¿El BX es igual o menor que el AX? f ) ¿El DX es igual o menor que el CX?
Ejercicio 21
a) ¿Cuál es la diferencia entre la codificación de procedimiento PROC con FAR y con NEAR?
b) ¿Cuáles son las formas en que un programa puede iniciar la ejecución de procedimiento?
Ejercicio 22
Las operaciones con cadenas de caracteres suponen que los operandos están relacionados con los registros
DI o SI. Identifique estos registros para lo siguiente: a) MOVS (operandos 1 y 2); b) CMPS (operandos 1 y
2); c) SCAS (operando 1).
Ejercicio 23
Para operaciones con cadenas usando REP, a) ¿cómo define el número de repeticiones que ocurren? b)
¿cómo establece el procesamiento de derecha a izquierda?
Ejercicio 24
Utilice la definición de datos del Cuadro 1 y codifique operaciones con cadenas de caracteres.
DATASG
SEGMENT PARA
CONAME DB ’SPACE LAUNCHES, LAUNCHES, INC’
PRLINE DB 20 DUP(’’)
Cuadro 1: Ejercicio 24
a) Mover CONAME a PRLINE, de izquierda a derecha.
b) Mover CONAME a PRLINE, de derecha a izquierda.
c) Cargar el tercer y cuarto byte de CONAME en el AX.
d) Rastrear CONAME por un caracter blanco y, si se encuentra uno, moverlo a BH.
3
Laboratorio de Sistemas Digitales
Introducción a las Computadoras Digitales
Año 2008
Ejercicio 25
Defina una tabla llamada TABLEX con 50 palabras, inicialı́cela con blancos.
Ejercicio 26
Se necesita un programa que proporcione un cifrado sencillo de información. Defina un área de datos de
80 bytes llamada CRYPTEXT con cualesquiera datos ASCII. Arregle una tabla de traducción para convertir
los datos de manera un poco aleatoria, por ejemplo, A a X, B a E, C a R, etc. Proporcione todos los posibles
valores de byte. Arregle una segunda tabla de traducción que invierta (descifre) la información. El programa
debe realizar las acciones siguientes:
1) Desplegar el contenido original de CRYPTEXT en una lı́nea.
2) Cifrar CRYPTEXT y desplegar la información cifrada en una segunda lı́nea.
3) Descifrar CRYPTEXT y desplegar la información descifrada en una tercer lı́nea. (Debe mostrar la
misma información que la primer lı́nea.)
4
Laboratorio de Sistemas Digitales
Descargar