Programas : Divición de valores y Comparación de edades

Hola el dia de hoy veremos ejemplos de como hacer una divición simple en ensamblador y practicaremos un poco mas el aspecto de las condicionales.


Codigo:


org 100h

mov ax,100 ;se coloca el numero 9 al registro ax
mov bx,5 ;se coloca el numero 8 al registro bx

div bx; se dividira ax/bx

ret

Como podemos ver en la imagen los valores 100 y 5 se almacenan en los registros en formato hexadecimal


Al efectuar la división obtenemos el numero 14 en hexadecimal, el cual representa el numero 20 en decimal.


Codigo:
.model small
.stack
.data                        
diez db 10; variable para imprimir 2 caracteres (se multiplica por el primer valor)                  
num1 db 0; variable para la edad
mE1 db 10,13,"Ingrese la edad: $"  ;mE1: mensaje edad 1 
mens1 db 10,13,"Eres mayor de edad $"
mens2 db 10,13,"Eres menor de edad $"
.code
inicio proc far
    mov ax,@data ;lleva a cabo el direccionamiento del segmento datos 
    mov ds,ax    ;Los datos se mueven al registro ax
    
    ;poner el primer letrero
    mov ah,09
    lea dx,mE1
    int 21h
    
    ;lectura del valor
    mov ah,01
    int 21h
    sub al,30h ;convierto a decimal
    mul diez   ;se multiplica el numero ingresado para las decenas
    
    
    mov num1,al ;guardo el valor introducido en num1
    
    ;lectura segundo valor
    mov ah,01
    int 21h
    sub al,30h ;convierto a decimal   
    add al,num1
    
    cmp al,18 ;Si lo que se encuentra en al>18 
    JGE mayor ;salta a mayor
    JMP menor ;sino ve a menor  
    
    mayor:
        mov ah,09
        lea dx,mens1
        int 21h 
        jmp final
    menor:
        mov ah,09
        lea dx,mens2
        int 21h
        jmp final
           
           
    final:  
        mov ah,4ch
        int 21h

endp inicio


end

Resultado:



Comentarios