Está en la página 1de 6

Unidad profesional interdisciplinaria de ingenierías

Campus Zacatecas.

Asignatura:
MICROPROCESADORES, MICROCONTROLADORES E INTERFAZ

TAREA 03: Programación en lenguaje ensamblador.

Docente:
ORENDAY DELGADO ADAN

Alumno:
Ricardo Menchaca Esparza

Grupo:
2MM4

Carrera:
ingeniería Mecatrónica
name "Pomedio de 8 numeros"

org 100h

.model small

.stack 100h

;Primero se introducen las variables que vamos a utilizar para la ejecución de este programa
(división, decenas, unidades, números y suma)

.data

division db 0

decenas db 0

numeros db 8 dup(0)

suma dw 0

unidades db 0

;Las siguientes líneas son las que se imprimirán en la pantalla.

instruccion db 'Escribe los 8 numeros:$'

resultado db 'El promedio es: $'

;Aquí comienza el código necesario para la elaboración de dicho programa.

.code

;En esta primera parte es la que se encarga de mostrarnos la instrucción en la ventana

mov ah,9

mov dx,offset instruccion

int 21h

;Esta segunda parte es donde introducimos los 8 números de dos digitos

mov di,0

mov cx,0

leer_numeros:

mov ah,1

int 21h

sub al,30h
mov bl,10

mul bl

mov decenas,al

mov ah,1

int 21h

sub al,30h

mov unidades,al

mov bl,unidades

add bl,decenas

mov numeros[di],bl

mov ah,2

mov dl,' '

int 21h

inc di

cmp di,8

jne leer_numeros

;Esta tercera parte es la encargada de ejecutar la operación de suma de los 8 números


introducidos

mov di,0

ressuma:
mov al,numeros[di]

add ax,suma

mov suma,ax

inc di

cmp di,8

jne ressuma

;Esta cuarta parte del código es en donde se elabora el proceso de obtención del promedio

add cx,suma

mov ax,cx

mov bx,8

mov dx,0

div bx

;Aquí se respalda ax como se vio en clase.

push ax

mov ah,2

mov dl,10

int 21h

;A continuación de escribe un salto de línea

mov ah,2

mov dl,13

int 21h

;Esta parte es la encargada de imprimir la variable de resultado en la pantalla

mov ah,9

mov dx,offset resultado

int 21h

pop ax
;La siguiente parte del código es la que nos muestra el resultado del promedio de los 8 números
dados en pantalla

mov ah,0

mov ah,division

aam

;Aquí se ejecuta una conversión de ascii a caracteres

mov bx,ax

add bl,30h

add bh,30h

; Y por último esto nos muestra las decenas y unidades del resultado respectivamente en la
pantalla.

mov ah,2

mov dl,bh

int 21h

mov ah,2

mov dl,bl

int 21h

ret
Captura de el funcionamiento correcto en el programa

También podría gustarte