Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estudiante
Arquitectura de computadores
Tutor
23 de mayo de 2021
INTRODUCCIÓN
El siguiente trabajo académico, está encaminado a dar constancia del conocimiento del
manejo del lenguaje ensamblador y para esto se deberá desarrollar un prototipo funcional
donde tendrá las siguientes características:
Menú
1. Datos del autor
2. Suma de dos números
3. Resta de dos números
4. Multiplicación de dos números
5. División de dos números
6. Validar si un número es positivo o negativo
7. Salir
En datos del autor se deberá imprimir en pantalla del nombre del estudiante, centro UNAD
donde estudia y la fecha de presentación. Para las operaciones 2,3,4 y 5 se debe solicitar
por teclado dos números de un solo digito, en la operación 6 se debe digitar un solo número
por teclado. Para finalizar se realizarán conclusiones donde se explicará lo aprendido en la
actividad y el curso Arquitectura de computadores.
Objetivo General
Objetivos específicos
Crear un menú que contenga datos del autor, operaciones aritméticas, validación de
número negativo – positivo y la opción de salir del programa.
Realizar programa en emu8086 y pasarlo a formato .ASM
Escribir dos conclusiones generales y 5 conclusiones de la actividad final.
1. El estudiante realiza un prototipo funcional en lenguaje Ensamblador, que incluya el
siguiente menú de opciones:
MENÚ
.model small
.stack 100
.data
mensaje7 db 13,10,'Para volver al menu presiona 1 de lo contrario oprima cualquier tecla dos
veces: ','$'
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','$'
.code
.startup
jmp menu
menu:
mov ah,09h
int 21h
mov ah,09h
lea dx, menu2
int 21h
mov ah,09h
int 21h
mov ah,09h
int 21h
mov ah,09h
int 21h
mov ah,09h
int 21h
mov ah,09h
int 21h
mov ah,09h
int 21h
mov ah,09h
mov ah,09h
int 21h
jmp opcion
opcion:
mov ah,09
int 21h
call leer
sub al,30h
mov variable3,al
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:
int 21h
int 21h
int 21h
int 21h
int 21h
jmp salir
;----------------SUMA-------------
suma:
call limpia
mov ah,09h
int 21h
call leer
sub al,30h
mov variable1, al
int 21h
call leer
mov ah,09h
int 21h
mov dl,bl
add dl,30h
mov ah,02h
int 21h
jmp salir
;---------------RESTA---------------
resta:
call limpia
mov ah,09h
int 21h
call leer
sub al,30h
mov variable1,al
mov ah,09h
lea dx,mensaje2
int 21h
call leer
mov variable2,al
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
;---------------MULTIPLICACION---------------
multi:
call limpia
mov ah,09h
lea dx,mensaje1
int 21h
call leer
sub al,30h
mov variable1,al
mov ah,09h
int 21h
call leer
sub al,30h
mov variable2,al
mov bl,variable2
mov ah,09h
lea dx,mensaje5
int 21h
mul bl;
mov dl,al
add dl,30h
mov ah,02h
int 21h
jmp salir
;-----------------DIVISION------------------
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
int 21h
jmp salir
;--------------------POSITIVO O NEGATIVO------------------
compar:
call limpia
mov ah,09h
lea dx,mensaje9
int 21h
call leer
sub al,30h
mov variable5,al
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
jmp salir
cero:
call limpia
mov ah,09h
int 21h
jmp salir
;------------------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
;--------PROCEDIMIENTOS O PROCESOS-------
mov ah,00h
mov al,03h
int 10h
ret
limpia endp
mov ah,01h
int 21h
ret
leer endp
salto endp
end
Capturas
Conclusiones Generales
Se crearon métodos por los cuales se realizará cada una de estas operaciones y cumple con
las condiciones las cuales eran escribir un número de un solo dígito, mostrar los datos del
estudiante y salir del programa.
4. Al dar por finalizada la actividad se puede concluir que, el lenguaje ensamblador de bajo
nivel es utilizado para traducir sentencias al código de máquina del computador en el cual
se ejecuta un programa. 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.
5. Al dar por finalizado el curso de arquitectura de computadores, se puede concluir que el
lenguaje ensamblador facilita las operaciones de números enteros tales como: (de 8, 16, 32
y 64 bits dependiendo de la arquitectura de la CPU, en los sistemas muy viejos también de
12, 18, 24, 36 y 48 bits)