1- 4 Programas (Lenguaje ensamblador)


1.Programa multiplicador 5 y 10 con librería emu8086.

El siguiente programa toma un 2 valores que ingresemos, el primero lo multiplica por 5 y el segundo por 10, después muestra el resultado.




org 100h
include 'emu8086.inc'
.data
numeros db 2 dup (?) ;creacion de un arreglo
cad2 dw ?
msg dw "Multiplicacion por 10: $"
msg2 dw "Multiplicacion por 5: $"
.code
print 'Ingresa el primer numero:'
call scan_num
mov numeros[0],cl
printn ""
print 'Ingresa el segundo numero:'
call scan_num
mov numeros[1],cl
//multi:
xor ax,ax
mov al,numeros[0]
mov bl,10
mul bl
printn ""
mov bx, ax
mov ah,09
lea dx,msg
int 21h
mov ax, bx
printn ""
call PRINT_NUM
xor ax,ax
mov al,numeros[1]
mov bl,5
mul bl
printn ""
mov bx, ax
mov ah,09
lea dx,msg2
int 21h
mov ax, bx
printn ""
call PRINT_NUM
ret
define_print_num
define_scan_num
define_print_num_uns
define_print_string
define_get_string
end
view rawNumero5-10.asm hosted with ❤ by GitHub

2.Programa de calificaciones con emu8086


El siguiente programa analiza la calificación ingresada y muestra si es aprobatoria o reprobatoria




org 100h
.model small
.stack 64
.data ;seccion de variables
msg1 db "Dame una calificacion (seguida de un enter):$"
aprobado db 13,10, "Aprobado$" ;13 es salto de linea y 10 es salto de carro
reprobado db 13,10, "Reprobado$"
var1 dw ?,"$" ;variable data write
var2 dw ?,"$"
var3 dw ?,"$"
.code ;inicia el segmento de codigo
resultado proc far ;declaracion de funcion
mov ax, @data ;como inicio
mov ds, ax
;------------desplegar primer mensaje
mov ah,09 ;inicio de mensaje
lea dx,msg1
int 21h
;------------pedir un caracter
mov ah,01
int 21h ;parpadea el cursor
mov var1,ax
;------------pedir segundo caracter
mov ah,01
int 21h ;parpadea el cursor
mov var2,ax
;------------pedir un caracter
mov ah,01
int 21h ;parpadea el cursor
mov var3,ax
;------------momento de evaluar
cmp al,13 ;compara con el enter
je continue ;salto si se cumple la condicion igual a 13
jmp mayor
;inicia funcion
continue:
mov ax, var1 ;valor de var1 se va a reg ax
cmp al,037h
jge mayor ;salta si es mayor o igual
jmp menor ;si no se cumplio se va a funcion menor
mayor:
mov ah,09
lea dx, aprobado
int 21h
jmp salir
menor:
mov ah,09
lea dx, reprobado
int 21h
jmp salir
salir:
mov ax, 4ch
int 21h
resultado endp
end
view rawCalificaciones.asm hosted with ❤ by GitHub



3.Programa multiplicador 5 y 10 sin librería emu8086.

El siguiente programa toma 2 variables ingresadas por el usuario y multiplica la primera por 5 y la segunda por 10, pero esta vez sin utilizar la librería emu8086.



.data ;segmento Data
msg db 13,10,"Ingrese el primer numero $"
msg2 db 13,10,"Ingrese el segundo numero $"
msg1 db 13,10,"El resultado mult por 10 es :$"
diez db 10 ;una variable con valor de 10
cinco db 5 ;una variable con valor de 5
num1 db 0
.code ;segmento de codigo del programa
MOV AX,@DATA
MOV DS,AX
;Para desplegar el mensaje 1:
MOV AH,09
lea DX,msg
int 21h
MOV AH,01
int 21h
mul diez
aam
mov ah,02
int 21h
;MOV num1,AX
MOV AX,@DATA
MOV DS,AX
;Para desplegar el mensaje 2:
MOV AH,09
lea DX,msg2
int 21h
MOV AH,01
int 21h
mul cinco
aam
mov ah,02
int 21h
end

4.Programa DIV Y MULT

Comentarios

Entradas populares