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 |
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 |
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
Publicar un comentario