miércoles, 6 de marzo de 2013

Suma de dos número enteros sin signo en ensamblador

El programa que se muestra a continuación se ha compilado con el emulador 8086 para Intel. Se trata de sumar dos números enteros sin signo, la idea es que tengan acceso a un programa bastante sencillo y lo mejoren....

org 100h  

jmp start

msg1 db 'digite primer numero: $'
msg2 db 'digite segundo numero: $'
msg3 db 'resultado= $'
salta db 0Dh,0Ah,24h 
decenas  db ?
unidades db ?
diez db 0ah

start:

    mov ah,09h ;imprimir primer msg
    lea dx,msg1
    int 21h   

    mov ah,01h ;leer primer numero
    int 21h   

    sub al,30h ;hacemos el aguste de caracter a numero
    mov bl,al  ;guardar primer numero en bl
   
    mov dx,offset salta  ;saltar a la sig linea
    mov ah,09h
    int 21h
   
    mov ah,09h    ;imprimir segundo msg
    lea dx,msg2
    int 21h

    mov ah,01h ;leer segundo numero
    int 21h   
   
    sub al,30h ;ajustamos el numero
    mov cl,al  ;copiamos a cl

    mov al,bl  ;mover el primer numero a al
    add al,cl  ;sumar los dos numeros
    
    mov ah,0000h  ;pone a cero ah
     
    idiv diez       ;rutina para realizar la
    mov decenas,al  ;division y encontrar los
    mov unidades,ah    ;numeros en decimal
    mov dx,0000h
   
    mov ah,00h ;borrar pantalla
    mov al,03h
    int 10h
   
    mov ah,09h ;imprimir tercer msg
    lea dx,msg3  ;resultado = ...
    int 21h
   
    add decenas,30h  ;imprimir las decenas
    mov dl,decenas
    mov ah,02h
    int 21h
   
    add unidades,30h  ;imprimir las unidades
    mov dl,unidades
    mov ah,02h
    int 21h
     
    mov ah,4ch
    int 21h 

ret

4 comentarios:

  1. Disculpa me gustaria contactarte, tienes facebook. ??? o skype.. gracias

    ResponderEliminar
  2. necesito realizar un programa en assembler.

    que lea 2 numeros enteros y realize esto:

    los sumes.
    los reste.
    los miltiplique.
    y el resultado lo muestre en pantalla.

    El que este dispuesto hacerlo comunicarse a este medio.

    numero de telefono:04145072584
    correo:luisalejandrofer@hotmail.com

    ResponderEliminar