Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Grupo: 202016893_238
2021
INTRODUCCIÓN
El presente trabajo incluye la implementación de un prototipo funcional
desarrollado en lenguaje ensamblador, el prototipo incluye una lista de opciones
que le permiten realizar operaciones aritméticas como suma, resta, multiplicación
y división, confirmar si un número es positivo o negativo y la posibilidad de salir.
Además, se adjunta una captura de pantalla de la implementación del programa,
que refleja el correcto funcionamiento del programa desarrollado donde
implementaremos los conocimientos adquiridos durante el desarrollo de
actividades previas y en investigación. Unidades 1, 2 y 3 del curso Arquitectura de
Computadores.
.
OBJETIVOS
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
C ó d i g o
;Nombre del autor: Brillyn Narvaez Vargas
;Centro UNAD donde estudia: CEAD Florencia Caqueta-Zona Sur
;PROGRAMA: ingenieria de sistemas
;Cedula: 1117528309
;Grupo: 202016893_238
;Fecha de presentacion: 03/12/2021
;Universidad Nacional Abierta y a Distancia
.model small
.stack 64 ; define tamano de pila 64k
.data segment ; define las variables donde se almacena la
informacion
; declaracion de los mensajes que se va mostrar en pantalla el
Menu de opciones y resultados
mens1 DB 13,10,13,10, "Tarea 6-Desarrollar un prototipo funcional
en lenguaje ensamblador para conocer el funcionamiento de los
registros de proposito general. $"
mens2 DB 13,10,13,10, " TE MOSTRARE LAS OPCIONES QUE TIENE PARA
TI!! $"
mens3 DB 13,10,13,10," MENU PRINCIPAL: $"
mens4 DB 13,10,13,10, "1. Datos del autor $"
mens5 DB 13,10,13,10, " NOMBRE: Brillyn Narvaez Vargas",13,10, "
CEDULA: 1117528309",13,10, " PROGRAMA: ingenieria de
sistemas" ,13,10, "Centro UNAD donde estudia: CEAD Florencia
Caqueta-Zona Sur" ,13,10, "Fecha de presentacion: 03 de Diciembre
del 2021",13,10,"Universidad Nacional Abierta y a Distancia,$"
mens6 DB 13,10, "2. Suma de dos numeros $"
mens7 DB 13,10, "3. Resta de dos numeros $"
mens8 DB 13,10, "4. Multiplicacion de dos numeros $"
mens9 DB 13,10, "5. Division de dos numeros $"
mens10 DB 13,10, "6. Validar si un numero es positivo o negativo
$"
cmp al, 6
jz posneg
cmp al, 7
mov AH, 4CH
int 21h
autor:
mov ah, 09h
mov dx, offset mens5
int 21h
jmp menú
suma:
mov ah, 09h
mov dx, offset mens13
int 21h
; lee teclado
mov ah, 01h
int 21h
; verificar si es negativo
cmp al,2dh
je signo
; ajustar teclado
sub al, 30h
add result, al
jmp return1
signo:
mov ah, 01h
int 21h
return3:
loop mult
mov result, al
jmp imp1
mov signox, 0
; negativo o positivo
; imprimir mensaje
posneg:
mov ah, 09h
mov dx, offset mens13
int 21h
; lee teclado
mov ah, 01h
int 21h
sub al, 30h
mov num1, al
int 21h
sub al, 30h
mov ah, num1 ; capturamos el numero para determinar si es positivo
o negativo
cmp ah, 0 ; sirve para hacer la comparacion entre los numeros
negativos y positivos
jl menor ; etiquetas a direccion de los bloques
jg mayor
.exit
menor:
mov ah, 09h
lea dx, mensmenor ; lee el numero si es menor
mov numero, al
mov al, result
div numero
jmp return4
etiqueta3:
mov result, al
jmp return4
signod: ; lee y muestra el numero
mov ah, 01
int 21h
sub al, 30h ; convertimos el valor ingresado a hexadecimal
inc signox
cmp cx, 2
je etiqueta3
mov ah, 0
mov numero, al
mov al, result
div numero
jmp return4
return4: loop divi
mov quotient, al
mov residue, ah
mov result, al
jmp imp3
imp3:
mov ah, 02h
mov dl, 10
int 21h
mov ah, 02h
mov dl, 13
int 21h
mov ah, 09h
mov dx, offset mens14 ; muestra el mensaje en la pantalla el
resultado es
int 21h
jmp imprimedivi
imprimedivi:
mov al, result
mov ch, 30h
add al, ch
add ah, ch
mov bl, ah
mov ah, 9
mov dx, offset mens15
int 21h
cmp signox, 1
jz cambio
jmp termina
cambio:
mov dl, "-"
mov ah, 02h
int 21h
mov signox, 0
termina:
mov dx, 0
Lindig Bos, M. (2010). ¿Qué hay detrás de las computadoras? México, México: Instituto
Politécnico Nacional. (P. 39-94). Recuperado de https://elibro-
net.bibliotecavirtual.unad.edu.co/es/ereader/unad/72193?page=48