jueves, 1 de marzo de 2018

Ejemplo ciclos emu8086


org 100h



.model small

.stack 64

.data



mensaje db 10,13 ,"Dame un numero",10,13,"$"

mensaje2 db 10,13 ,"Dame un la potencia",10,13,"$"

n1 db 0

n2 db 0

n3 db 0

.code



inicio:     ;función inicio



 mov ax,@data ;Movemos el segmento data a ax

 mov ds,ax ; Movemos lo que esta en ax a ds

 mov dx,offset mensaje ;Imprimimos el primer mensaje parte 1

 mov ah, 09h ;Imprimimos el primer mensaje parte 2

 int 21h ;Imprimimos el primer mensaje parte 3



 mov ah,01     ;pausa y espera a que el usuario presione una tecla

 int 21h        ;interrupción para capturar

 sub al,30h   ;lo que el usuario presiono se guarda en al y se le resta 30h para convertirlo a un numero

 mov n1,al ;Movemos lo que esta en al a la variable n1

 mov n3,al  ;Movemos lo que esta en al a la variable n3



 mov ah, 09h ;imprimimos el mensaje 2 parte 1

 mov dx,offset mensaje2  ;imprimimos el mensaje 2 parte 2

 int 21h  ;imprimimos el mensaje 2 parte 3

 mov ah,01     ;pausa y espera a que el usuario presione una tecla

 int 21h           ;interrupcion para capturar

 sub al,30h     ;lo que el usuario presiono se guarda en al y se le resta 30h para convertirlo a un numero

 mov n2,al     ;Guardamos lo que el usuario preciono el n2





 mov cl,al ; movemos lo que esta en al a cl para decirle al ciclo cuantas vueltas va a dar

 sub cl,1 ;le restamos 1 para que no de una vuelta de mas





call ciclo ;llamada a ciclo



ciclo:  ;Funcion

 call ciclo1 ;llamada el procediemto 1



ciclo1 proc near : ;procedimiento ciclo

  mov al,n1 ;potencia parte 1

  mov bh,n3 ;potencia parte 2

  mul bh ;potencia parte 3



  mov n1,al



  loop ciclo1 ;loop a la funcion ciclo

 



  mov ax,4c00h ;fin parte 1

  int 21h; fin parte 2



fin: ;funcion fin

 mov ax,4c00h      ;funcion que termina el programa

 int 21h

end inicio




No hay comentarios:

Publicar un comentario