Está en la página 1de 18

ARQUITECTURA DE COMPUTADORES

Tarea 6 - Desarrollar un prototipo funcional

ALUMNO: KEVIN DAVID VILLOTA GARCIA


C.C 1085347135

TUTORA: ANGELA PATRICIA VILLAREAL

GRUPO: 202016893_110

UNIVERSIDAD NACIONAL ABIERTA Y A DISTANCIA


CEAD PASTO

29 mayo 2022
introducción
en el anterior trabajo se ve la realización de un prototipo funcional desarrollado
haciendo uso del Lenguaje Ensamblador.
El cual incluye un menú de opciones que permite realizar operaciones como suma,
resta, multiplicación, división
Objetivos
Comprender los fundamentos básicos de la maquina secuencial de programa
almacenado de la Arquitecturas de Computadores Von Neumann Desarrollando
un prototipo funcional en Lenguaje ensamblador.
Crear un menú que contenga datos del autor, operaciones aritméticas
; Kevin David Villota García
; Código: 1085347135
; Grupo No: 202016893_110
; Fecha: 29 mayo 2022
.model small
.stack 100
.data
mensaje1 db 'Numero 1: ','$' ;
mensaje2 db 13,10,'Numero 2: ','$'
mensaje3 db 13,10,'Suma: ','$'
mensaje4 db 13,10,'Resta: ','$'
mensaje5 db 13,10,'Multiplicacion: ','$'
mensaje6 db 13,10,'Division: ','$'
mensaje7 db 13,10,'Para volver al menu presiona 1 de lo contrario oprima
cualquier tecla dos
veces: ','$'
mensaje8 db 13,10,'Seleccione una opcion: ','$'
mensaje9 db 13,10,'Numero a comparar: ','$'
Renglon db 13,10, '$'
variable1 db 0
variable2 db 0
variable3 db 0
variable4 db 0
variable5 db 0
menu1 db 13,10, 'Bienvenido al Menu de opciones, , elige la que desees
escribiendo uno de los
siguientes numeros','$'
menu2 db 13,10, '_________________','$'
menu3 db 13,10, '1. Datos del autor','$'
menu4 db 13,10, '2. Sumar dos numeros','$'
menu5 db 13,10, '3. Restar dos numeros','$'
menu6 db 13,10, '4. Multiplicar dos numeros','$'
menu7 db 13,10, '5. Dividir dos numeros','$'
menu8 db 13,10, '6. Positivo o negativo','$'
menu9 db 13,10, '7. Salir','$'
texto1 db 13,10, 'Datos del autor','$'
texto2 db 13,10, '_______________','$'
texto3 db 13,10, 'Maria ','$'
texto4 db 13,10, 'C.c','$'
texto5 db 13,10, 'CEAD- ','$'
texto6 db 13,10, '19/05/2021','$'
resp1 db 13,10, 'El numero ingresado es positivo','$'
resp2 db 13,10, 'El numero ingresado es negativo','$'
resp3 db 13,10, 'El numero es Neutro','$'
.code
.startup
jmp menu
menu:
call limpia; se utiliza para limpiar pantalla
mov ah,09h
lea dx, menu1
int 21h
mov ah,09h
lea dx, menu2
int 21h
mov ah,09h
lea dx, menu3
int 21h
mov ah,09h
lea dx, menu4
int 21h
mov ah,09h
lea dx, menu5
int 21h
mov ah,09h
lea dx, menu6
int 21h
mov ah,09h
lea dx, menu7
int 21h
mov ah,09h
lea dx, menu8
int 21h
mov ah,09h
lea dx, menu9
int 21h
mov ah,09h
lea dx, menu2
int 21h
jmp opcion
opcion:
mov ah,09
lea dx, mensaje8
int 21h
call leer
sub al,30h
mov variable3,al
mov al, variable3
cmp al, 1
je autor1
jmp siguiente1
siguiente1:
cmp al, 2
je suma1
jmp siguiente2
siguiente2:
cmp al, 3
je resta1
jmp siguiente3
siguiente3:
cmp al, 4
je multi1
jmp siguiente4
siguiente4:
cmp al,5
je divi1
jmp siguiente5
siguiente5:
cmp al,6
je compar1
jmp salir
autor1:
jmp autor
suma1:
jmp suma
resta1:
jmp resta
multi1:
jmp multi
divi1:
jmp divi
compar1:
jmp compar

autor: Kevin David Villota García


call limpia; limpia
mov ah, 09h
lea dx, texto1
int 21h
mov ah, 09h
lea dx, texto2
int 21h
mov ah, 09h
lea dx, texto3
int 21h
mov ah, 09h
lea dx, texto4
int 21h
mov ah, 09h
lea dx, texto5
int 21h
mov ah, 09h
lea dx, texto6
int 21h
jmp salir
suma:
call limpia
mov ah,09h
lea dx, mensaje1
int 21h
call leer
sub al,30h
mov variable1, al
mov ah, 09h
lea dx, mensaje2
int 21h
call leer
sub al, 30h
mov variable2, al
mov bl, variable2
mov ah,09h
lea dx, mensaje3
int 21h
add bl, variable1
mov dl,bl
add dl,30h
mov ah,02h
int 21h
jmp salir
resta:
call limpia
mov ah,09h
lea dx, mensaje1
int 21h
call leer
sub al,30h
mov variable1,al
mov ah,09h
lea dx,mensaje2
int 21h
call leer
sub al, 30h
mov variable2,al
mov bl, variable2
mov bl,variable1
sub bl,variable2
mov ah,09h
lea dx,mensaje4
int 21h
mov dl,bl
add dl,30h
mov ah,02h
int 21h
jmp salir
multi:
call limpia
mov ah,09h
lea dx,mensaje1
int 21h
call leer
sub al,30h
mov variable1,al
mov ah,09h
lea dx, mensaje2
int 21h
call leer
sub al,30h
mov variable2,al
mov bl,variable2
mov ah,09h
lea dx,mensaje5
int 21h
mov al, variable1
mov bl, variable2
mul bl;
mov dl,al
add dl,30h
mov ah,02h
int 21h
jmp salir
divi:
call limpia
mov ah,09h
lea dx,mensaje1
int 21h
call leer
sub al,30h
mov variable1,al
mov ah,09h
lea dx,mensaje2
int 21h
call leer
sub al,30h
mov variable2,al
mov bl,variable2
mov ah,09h
lea dx,mensaje6
int 21h
xor ax,ax
mov al,variable2
mov bl,al
mov al,variable1
div bl
mov bl,al
mov dl,bl
add dl,30h
mov ah, 02h
int 21h
jmp salir
compar:
call limpia
mov ah,09h
lea dx,mensaje9
int 21h
call leer
sub al,30h
mov variable5,al
mov al, variable5
cmp al,0
jg positivo
jl negativo
jz cero
positivo:
call limpia
mov ah,09h
lea dx,resp1
int 21h
jmp salir
negativo:
call limpia
mov ah,09h
lea dx, resp2
int 21h
jmp salir
cero:
call limpia
mov ah,09h
lea dx, resp3
int 21h
jmp salir
salir:
mov ah,09h
lea dx,mensaje7
int 21h
call leer
sub al,30h
mov variable4,al
mov al,variable4
cmp al,1
je menup
call leer
mov ah,4ch
int 21h
menup:
jmp menu
limpia proc near
mov ah,00h
mov al,03h
int 10h
ret
limpia endp
leer proc near
mov ah,01h
int 21h
ret
leer endp
salto proc near
mov ah, 09h
lea dx, renglon
int 21h
mov dl, 00h
salto endp
end
Conclusiones
El código escrito en Lenguaje Ensamblador tiene una estructura cercana al
lenguaje máquina para su desarrollo y entendimiento a la hora que crear
programas y ejecutar su solución
Este lenguaje fue el primer intento en el hallazgo de un sustituto más fácil y rápido
en poder hallar comunicación de forma directa con el Hardware de un dispositivo
Se logra comprender los fundamentos básicos de la maquina secuencial de
programa almacenado aplicándolos así al momento de darle solución a los
métodos de conversión entre los tres sistemas numéricos computacionales
el lenguaje ensamblador debajo nivel es utilizado para traducir sentencias al
código de máquina del computador en el cual se ejecuta un programa
el lenguaje ensamblador cuenta con una estructura compleja de desarrollar
Bibliografía
Rocabado Moreno, S. H. y Arias Figueroa, D. A. (2016). Arquitectura y
organización de la computadora: microprocesadores y programación assembler.
Argentina: D - Editorial de la Universidad Nacional de La Plata.(P. 24-52)
https://elibro-net.bibliotecavirtual.unad.edu.co/es/ereader/unad/77190?page=25
Soriano Payá, A. (2002). Estructuras de computadores: problemas resueltos.
Digitalia (P. 13-50)
https://bibliotecavirtual.unad.edu.co/login?url=http://search.ebscohost.com/
login.aspx?direct=true&db=nlebk&AN=318079&lang=es&site=eds-
live&scope=site&ebv=EB&ppid=pp_13
Castro, M. (2014). Estructura y tecnología de computadores I (Gestión y Sistemas)
(págs. 1- 114). Recuperado de
http://bibliotecavirtual.unad.edu.co/login?url=http://search.ebscohost.com/lo
gin.aspx?direct=true&db=edselb&AN=edselb.3217739&lang=es&site=edslive
Departamento de Ingeniería y Tecnología de Computadores. (10 de 10 de 2013).
Universidad de Murcia. Recuperado de
http://ditec.um.es/~jpujante/documentos/Tema4-slides.pdf Diaz, J. (15 de 09 de
2015). Universidad Nacional de Ingenieria. Recuperado de
http://escuelaingenieria.jimdo.com/app/download/5865883118/Introduccion_
a_las_Arquitecturas_Computacionales_5.pdf?t=1470956557 Andonegui, M. (15 de
03 de 2007). El sistema numérico decimal. [N.p.]: Corporación Andina de Fomento
(págs.1 - 29). Recuperado de http://bibliotecavirtual.unad.edu.co:2051/login.aspx?
direct=true&db=edsebk &AN=804505&lang=es&site=eds-live Arquitecturas de
Microprocesadores. (2005). Ediciones Paraninfo, S.A. Recuperado de
http://bibliotecavirtual.unad.edu.co/login?url=http://search.ebscohost.com/lo
gin.aspx?direct=true&db=edsgvr&AN=edsgcl.4054500068&lang=es&site=e ds-live

También podría gustarte