Está en la página 1de 19

Fase 4 – Trabajo Colaborativo 3

ARQUITECTURA DE COMPUTADORES 301302A_471

Grupo: 301302_8

Presentado por:

Gloriz Viviana Gomez Castañeda, cc 1020735499

Cead: Zipaquirá

A:
Tutor: ANYELO GERLEY QUINTERO
Fecha: Mayo 09 de 2018

Escuela de Ciencias Básicas, Tecnología e Ingeniería


Universidad Nacional Abierta y a Distancia.

PORTADA
INTRODUCCIÓN

La arquitectura de computadores podremos conocer, entender y trabajar las


instrucciones básicas del lenguaje ensamblador, los modos de direccionamiento,
instrucciones de testeo, decisiones y bucles, que son transcendentales para
comprender la comparación de datos y como la maquina opera un conjunto de
instrucciones aplicadas, para conseguir un resultado.
OBJETIVO GENERAL

Desarrollar de manera asertiva los puntos propuestos en la guía de actividades


para la presente fase practica sobre Instrucciones y procesamiento de lenguaje
ensamblador, utilizando lenguajes de maquina (modos de direccionamiento,
instrucciones típicas y lenguaje Assembler) como lo es el emulador 8086.

OBJETIVOS ESPECÍFICOS

Desarrollar los ejercicios propuestos en la guía de laboratorio.

Efectuar un informe donde se describa las practicas realizadas, describiendo las


secuencias lógicas que sigue el lenguaje ensamblador, para realizar las funciones
programadas mediante un lenguaje de maquina
Desarrollo de la Actividad
1. Explicar mediante un gráfico en que consiste las instrucciones tipo salto del
Lenguaje Ensamblador (Direcciones corta, cercana y lejana, etiquetas,
saltos incondicionales, saltos condicionales, instrucciones de testeo,
decisiones y bucles).

2. Desarrollar un código en lenguaje ensamblador que permita leer un número


de un digito por teclado y determinar si el número es par, impar o cero.
Documentar perfectamente todo el código. Generar tres capturas por
pantalla de la ejecución del programa. Anexar Archivo .asm del programa.
; Nombre de Integrante Grupo 8:
;Gloriz viviana gomez castañeda cód.:1020735499
; Fecha: 9 Mayo de 2018

;Diseñar un programa en ensamblador para MSX88


;Etiquetas y Comparaciones.

.model small ;se usa la directiva simplificada .MODEL para definir el atributo;
modelo de memoria, ubicación de la pila.
.stack ;esta directiva abre y cierra el segmento de pila
.data ;comienzo del segmento de datos

mensaje db 10,13, '* Ingrese un numero -->: $';se define el tipo de dato DB (byte)
cero db 10,13, '*>> El Dato ingresado es CERO$ ';mensaje cuando numero
ingresado es = cero, despues de validacion
impar db 10,13, '*>> El Dato ingresado es IMPAR$ ';mensaje cuando numero
ingresado es impar, despues de validacion
par db 10,13, '*>> El Dato ingresado es PAR$ ';mensaje cuando numero
ingresado es Par, despues de validacion
n1 db 1

.code

Inicio: ;Inicio de la interaccion del codigo

; direccionamos al segmento de datos

mov dx, data ;almacena el valor de .data en el registro dx


mov ds,dx ;almacena el valor del registro dx al registro de segmento ds

;se solicita el numero

mov ah, 09h ;peticion para desplegar


lea dx, mensaje ;carga la dirección de la indicación
int 21h ;llama al DOS
;la funcion 09h despliega una cadena en el area de datos,
;utiliza lea para cargar la direccion de cadena en DX,
;la operacion despliega los caracteres de izquierda a derecha.

call num
call Compara

num: ;etiqueta llamada num

;este código es para leer carácter con eco: esto quiere decir que cuando se
digita un carácter se imprime en la pantalla enseguida

mov ah,01 ;petición de leer carácter


;se usa el servicio 01 de la interrupción 21h, que lee un carácter (no
se trata como numero) y lo guarda en el registro al
int 21h ;Llama al DOS
sub al,30h ;se resta los 30h o 48h para convertirlo a numero hexadecimal
de acuerdo al código ascii ya que anteriormente el caracter fue guardado en
binario
ret

Compara: ;etiqueta llamada Compara

cmp Al, 0h ;compara si todo AL = 0


je Num_cero ;salta si AL es cero
and Al, 01h ;lee solo el bit 0, de acuerdo a la implementacion del tipo de
mascara bit; llamada "al fondo a la derecha"
;consiste en, dado el mapa de un establecimiento, indica si hay o no
una ruta, desde abajo, a la casilla superior derecha
;dado el numero entero previamente representado en bits, cualquier
camino valido debera estar en aquellos bits que,
;empezando por la derecha, sean 0 (no haya obstaculo). A partir del
primer bit a 1 (por la derecha) ningun camino sera valido
;(recuerde que son caminos tipo "al fondo a la derecha").
; para mas informacion verificar:
https://www.genbetadev.com/metodologias-de-programacion/mascaras-de-bits

cmp Al, 01h ;compara si el bit no es 1, y AL no vale 0


jz Num_impar ;salta si en impar

jmp Num_par ;Salta si en par

Num_Impar: ;etiqueta

;codigo para desplegar un mensaje en pantalla

lea dx, impar

mov ah, 09 ;peticion para desplegar


int 21h ;carga la direccion de la indicacion
jmp Inicio ;salta a la etiqueta inicio para repetir el codigo

;codigo para desplegar un mensaje en pantalla

Num_cero: ;etiqueta
lea dx, cero
mov ah,09 ;peticion para desplegar
int 21h ;carga la direccion de la indicacion
jmp Inicio ;salta a la etiqueta inicio para repetir el codigo

;codigo para desplegar un mensaje en pantalla

Num_par: ;etiqueta
lea dx, par
mov ah,09 ;peticion para desplegar
int 21h ;carga la direccion de la indicacion
jmp Inicio ;salta a la etiqueta inicio para repetir el codigo

end
 Ejecucion del rograma con Etiquetas:
3. Desarrollar un código en lenguaje ensamblador que permita realizar una
multiplicación de dos números a través de sumas sucesivas y una potencia
a través de multiplicaciones sucesivas (para ello debe utilizar instrucciones
tipo bucle). Al inicio del programa se deben capturar por teclado dos
números de un digito cada uno. Documentar perfectamente todo el código.
Generar tres capturas por pantalla de la ejecución del programa. Anexar
Archivo .asm del programa. Nota:

 No utilizar Simuproc. Utilizar el programa EMU8086


 Anexar el archivo .asm significa presentar en un archivo aparte con la
extensión .asm el código fuente del programa. NO es pegar el código en el
documento informe, es otro archivo
 A demás de una portada inicial con la siguiente información en el código
fuente
1er Ciclo de instrucción:
Búsqueda del código de operación y decodificación.
(IP) - Buffer de direcciones 1000
- Señal de lectura de memoria -> Buffer de Datos B8
- (Buffer de Datos) -> IR B8
- Decodificación
- MOV
- Secuenciador

IP) + 1 -> IP 1001


2do Ciclo de instrucción:
- Búsqueda del operando en memoria
- (IP) Buffer de direcciones 1001
- Señal de lectura de memoria (secuenciador lee)
- (Mem) -> Buffer de Datos 25
- (Buffer de Datos) -> AL10

(IP) + 1 -> IP 10 02
- (IP) Buffer de direcciones 10 03
- Señal de lectura de memoria (secuenciador lee)
- (Mem) -> Buffer de Datos 00
- (Buffer de Datos) -> AH00
- (IP) + 1 -> IP20 03

1er Ciclo de instrucción:


- Búsqueda del código de operación y decodificación.
- (IP) - Buffer de direcciones 10 03
- Señal de lectura de memoria (secuenciador lee)
- (Mem) -> Buffer de Datos BA
- (Buffer de Datos) -> IR BA
- Decodificación
- MOV
- Secuenciador

(IP) + 1 -> IP 10 04
2do Ciclo de instrucción:
- Búsqueda del operando en memoria
- (IP) Buffer de direcciones 10 04
- Señal de lectura de memoria (secuenciador lee)
- (Mem) -> Buffer de Datos 30
- (Buffer de Datos) -> DL 30

- (IP) + 1 -> IP 10 05
- (IP) Buffer de direcciones 10 05
- Señal de lectura de memoria (secuenciador lee)
- (Mem) -> Buffer de Datos 00
- (Buffer de Datos) -> DH00
ADD AX,DX
- (IP) + 1 -> IP10 06
1er Ciclo de instrucción:
- Búsqueda del código de operación y decodificación.
- (IP) Buffer de direcciones 10 06
- Señal de lectura de memoria (secuenciador lee)
- (Mem) -> Buffer de Datos 03
- (Buffer de Datos) -> IR03
- Decodificación
- Secuenciador

- (IP) + 1 -> IP10 07


- (IP) Buffer de direcciones10 07
- Señal de lectura de memoria (secuenciador lee)
- (Mem) -> Buffer de Datos C2
- (Buffer de Datos) -> IRC2
- Decodificación
- ADD
- Secuenciador
- (IP) + 1 -> IP10 08
mov cx,0 ; Asignamos cero a cx
mov al,2 ; Asignamos un Valor a AL
mov bl,4 ; Asignamos otro valor a BL

Sumador: ;etiqueta que hará comparación


cmp bl,ch ;compara si BL es menor, Igual o Mayor a CH
ja ciclo ; el ciclo que hace la comparación
mov dl,cl ;si bl es igual a ch, entonces en registro dl agrega el valor que
esta en cl
ret

ciclo:
add cl,al ; Se hace suma en registro CL
add ch,1
JMP sumador
ret

 Se inicializa CX con Cero.


 Se asigna valor (2) a AL.

 Inicia Ciclo n veces igual a valor en BL (4).


 Segundo Ciclo. (2+2=4)
 Tercer Ciclo. (2+2+2=6)

 Cuarto y Último Ciclo porque BL es igual a 4. Resultado en DL


(2+2+2+2=8)
CONCLUSIONES
Las instrucciones de salto en el lenguaje ensamblador se utilizan para transferir el
flujo del proceso a otro operador que se indique.
Estas instrucciones manejan propósitos, como el denominado salto condicional que
salta si está abajo o salta si no está arriba o si no es igual, según la comparación y
el salto Incondicional que se utiliza para desviar el flujo de un programa sin tomar
en cuenta las condiciones actuales de las banderas ni de los datos.

Teniendo en cuenta que el lenguaje ensamblador es el más bajo nivel al que


podemos llegar a la hora de programar, nos enfoca y orienta a un entendimiento
pleno del funcionamiento de un computador, pasando por la esencia de un
procesador, que es el cerebro de la máquina y que se comunica con la memoria y
todos los demás dispositivos.

Apoyados con el emulador EMU8086 para la escritura y ejecución de código en


operaciones básicas para validación de números ingresados y una suma de datos,
pudimos comprender más fácilmente y gracias a su ambiente gráfico, el
funcionamiento y secuencias que utiliza el lenguaje ensamblador durante la
ejecución de las instrucciones de tipo salto, como también el uso de etiquetas.
BIBLIOGRAFÍA

Solodrivers. (10 de 01 de 206). Solodrivers. Recuperado de:


http://www.solodrivers.com/

Universidad Carlos III de Madrid. (12 de 03 de 2016).


OpenCourseWare. Recuperado de:
http://ocw.uc3m.es/ingenieria-informatica/arquitectura-de-computadores-ii/otros-
recursos-1/or-f-010.-clusters-y-supercomputadores/view

Hurtado, A. V. (15 de 11 de 2016). http://www.abreojosensamblador.net.


Recuperado de:
http://www.abreojosensamblador.net/Productos/AOE/Index.html
Arquitectura de una computadora. (2011). Fundamentos de
Informática. Universidad Tecnológica Nacional. Facultad Regional Rosario Dto.
I. Eléctrica. Recuperado de:
http://www.frro.utn.edu.ar/repositorio/catedras/electrica/2_anio/fundamentos_infor
matica/apuntes/arquitectura/Tema1.pdf

Rocabado Moreno, S. H. (2016). Arquitectura y organización de la computadora:


microprocesadores y programación assembler (págs. 1- 95). Recuperado de:
http://bibliotecavirtual.unad.edu.co:2051/login.aspx?direct=true&db=edselb&AN=e
dselb.11200895&lang=es&site=eds-live

Hyde, R. (2010). The Art of Assembly Language. San Francisco: No Starch Press
(págs.1 - 150). Recuperado de:
http://bibliotecavirtual.unad.edu.co:2048/login?url=http://search.ebscohost.com/logi
n.aspx?direct=true&db=e000xww&AN=440013&lang=es&site=ehost-live

Soriano Payá, A. (2002). Estructuras de computadores : problemas resueltos.


[Alicante]: Digitalia (págs.13 - 50). Recuperado de:
http://bibliotecavirtual.unad.edu.co:2051/login.aspx?direct=true&db=nlebk&AN=31
8079&lang=es&site=eds-live
Hernández, Eddy J.. Microprocesadores. Argentina: El Cid Editor | apuntes, 2009.
ProQuest ebrary. Web. 7 December 2015 (págs.1 - 23). Recuperado de:
http://bibliotecavirtual.unad.edu.co:2051/login.aspx?direct=true&db=edselb&AN=e
dselb.10328022&lang=es&site=eds-live

Quintero Reyes, A. ( 28,11,2016). Registros de un procesador 8086. [Archivo de


video]. Recuperado de: http://hdl.handle.net/10596/9475

Referencias Complementarias

Las referencias bibliográficas complementarias sirven de apoyo para ampliar la


información relacionada con el tema de la unidad y puede ser consultada por el
estudiante cuando así lo requiera, especialmente, para complementar información
que le permita desarrollar las diferentes actividades propuestas para esta unidad.

Arquitecturas (2014). Información de nuevos desarrollos tecnológicos. Recuperado


de: http://www.storagereview.com/

Clúster de Computadores. (2013). Estructura de los clúster de


computadores. Recuperado de:
http://ocw.uc3m.es/ingenieria-informatica/arquitectura-de-computadores-ii/otros-
recursos-1/or-f-010.-clusters-y-supercomputadores

EASYSIM. (2014). Universidad Software para emulación de microprocesadores.


Nacional de la Patagonia. Argentina. Recuperado de:
http://www.ing.unp.edu.ar/asignaturas/arquitectura/Easysim.zip

También podría gustarte