lunes, 20 de mayo de 2024

CODIGO DE EMU8086

 .model small

.stack 100h


.data

    msg1 db 10,13,"1.- suma",0DH,0AH,"$"

    msg2 db "2.- resta",0DH,0AH,"$"

    msg3 db "3.- multiplicacion",0DH,0AH,"$"

    msg4 db "4.- division",0DH,0AH,"$"

    msg5 db "5.- salir del menu",0DH,0AH,"$"

    msg7 db "seleccione una opcion del 1 al 6 en el menu ",0DH,0AH,"$" 

    msj1 db "Ingrese el primer numero", 0DH, 0AH, "$"        

   msj2 db "Ingrese el segundo numero", 0DH, 0AH, "$"

   msj3 db "Resultado", 0DH, 0AH, "$"

   num1 db ?

   num2 db ?

   resultado db ?

    msjjj1 db "Digite el primer numero : ", 0DH, 0AH,"$"

    msjjj2 db "Dgite el segundo numero : ", 0DH, 0AH,"$"

    fina db "Resultado es:", 0DH, 0AH,"$"

    num11 db ?

    num22 db ?

    resa db ? 

    saltos db "", 0DH, 0AH,"$" 

   msgg1 db "Ingresa el primer numero: ", 0DH, 0AH, "$" 

msgg2 db "Ingresa el segundo numero: ", 0DH, 0AH, "$" 

msgg3 db "La suma de los numeros es: $" 

  msjj1 db 10, 13, "Ingresa el primer numero: $"

    msjj2 db 10, 13, "Ingresa el segundo numero: $" 

    msjj3 db 10, 13, "El resultado es: $"

    msjj4 db 10, 13, "", "$"

newline db 0DH, 0AH, "$"

   spa db "", 0DH, 0AH, "$"

    bienvenida db 10,13,"ingrese la suma",0DH,0AH,"$"

    nombre db 10,13,"ingrese la resta",0DH,0AH,"$"

    comida db 10,13,"ingrese la multiplicacion",0DH,0AH,"$"

    pelicula db 10,13,"ingrese la division",0DH,0AH,"$"

    final db 10,13,"---PROGRAMA FINALIZADO---"

    angel db 10,13,"Angel Yovani Cancino Ruiz, 21700162",0DH,0AH,"$" 

    delmar db 10,13,"Delmar Eli Martinez Martinez, 21700207",0DH,0AH,"$" 

    luis db 10,13,"Luis Miguel Marroquin Simon, 21700206",0DH,0AH,"$"

.code


programa:

    mov ax, @data 

    mov ds, ax

    jmp mostrarmenu

      

  mostrarmenu:

  mov dx, offset msg1

  call imprimir

  mov dx, offset msg2

  call imprimir

  mov dx, offset msg3 

  call imprimir

  mov dx, offset msg4

  call imprimir

  mov dx, offset msg5

  call imprimir

  mov dx, offset msg7

  call imprimir 

  mov ah,01h

  int 21h

  mov dl,al

  

  cmp dl,31h

  je opcion1 

  

  cmp dl,32h 

  je opcion2 

  

  cmp dl,33h

  je opcion3

  

  cmp dl,34h

  je opcion4

  

  cmp dl,35h

  je opcion5

  

 

  jnp mostrarmenu

    

    

    opcion1:

    mov dx, offset bienvenida

    call imprimir  

    

     ; Solicitar primer número 

    mov dx, offset msgg1 

    call imprimir 

    

    mov ah, 01h 

    int 21h 

    sub al, 30h ; Convertir de ASCII a valor numérico 

    mov bl, al ; Guardar el primer numero   

    

    ; Solicitar segundo número 

    mov dx, offset msgg2 

    call imprimir 

    mov ah, 01h 

    int 21h 

    sub al, 30h ; Convertir de ASCII a valor numérico 

    add bl, al ; Sumar el segundo número al primero (bl) 

    

    ; Mostrar la suma 

    mov dx, offset msgg3 

    call imprimir 

    mov dl, bl ; El resultado esta en bl 

    add dl, 30h ; Convertir de valor numérico a ASCII 

    mov ah, 02h 

    int 21h 

    

    mov dx, offset newline 

    call imprimir

                  

  jmp mostrarmenu                 

    ; Finalizar el programa 

    mov ax, 4c00h 

    int 21h    

   

    

    opcion2:

    mov dx, offset nombre

    call imprimir 

    ; Solicitar primer numero

    mov dx, offset msjj1

    call imprimir

    mov ah, 01h

    int 21h

    sub al, 30h  ; Convertir de ASCII a valor numerico

    mov bl, al   ; Guardar el primer numero 

    

    ;Salto de linea

    mov dx, offset msjj4

     call imprimir

    

    

    ; Solicitar segundo numero

    mov dx, offset msjj2

    call imprimir

    mov ah, 01h

    int 21h

    sub al, 30h  ; Convertir de ASCII a valor numerico

    sub bl, al   ; Sumar el segundo numero al primero (bl)

    

    ; Mostrar la resta

    mov dx, offset msjj4

    call imprimir

    mov dx, offset msjj3

    call imprimir

    mov dl, bl   ; El resultado esta en bl

    add dl, 30h  ; Convertir de valor numerico a ASCII

    mov ah, 02h

    int 21h

    

    mov dx, offset newline

    call imprimir

    jmp mostrarmenu

    

    opcion3:

           mov dx, offset saltos

    call imprimir

    mov dx, offset msjjj1

    call imprimir

    

    mov ah, 1h

    int 21h

    sub al, 30h

    mov num11, al

    

    mov dx, offset saltos

    call imprimir

    

    mov dx, offset msjjj2

    call imprimir

    

    mov ah, 01h

    int 21h

    sub al, 30h

    mov num22, al

    

    mov al, num11

    mov bl, num22

    mul bl

    mov resa, al

    add resa, 30h

    

     

    mov dx, offset saltos

    call imprimir

     

    mov dx, offset fina

    call imprimir 

    mov dl,resa

    mov ah, 2h

    mov dl, resa

    int 21h

        jmp mostrarmenu

     

    opcion4:

    mov dx, offset pelicula

    call imprimir 

     mov dx, offset msj1

    call imprimir

    

    mov ah, 01h

    int 21h

    sub al, 30h

    mov num1, al

    

    mov dx, offset spa

    call imprimir

    

    mov dx, offset msj2

    call imprimir

    

    mov ah, 01h

    int 21h

    sub al, 30h

    mov num2, al

    

    mov al, num1

    mov bl, num2

    xor ah, ah

    div bl

    mov resultado, al

    add resultado, 30h

    

    mov dx, offset spa

    call imprimir

    

    mov dx, offset msj3

    call imprimir

    

    mov dl, resultado

    mov ah, 2h

    int 21h 

    jmp mostrarmenu

     

     

    opcion5:

    mov dx, offset angel

    call imprimir       

    mov dx, offset delmar

    call imprimir        

     mov dx, offset luis

    call imprimir        

    

    call finalizar

    

    


    imprimir: 

    mov ah, 09h

    int 21h

    ret

    

    finalizar:

    mov ax, 4ch

    int 21h  

end programa

No hay comentarios:

Publicar un comentario

4.3 Lenguaje Máquina

  4.3 Lenguaje Máquina Es el que proporciona poca o ninguna abstracción del microprocesador de un ordenador. El lenguaje máquina solo es ent...