miércoles, 13 de marzo de 2019

programa en emu8086 subcadena

programa en emu8086

programa que valida si una cadena es sub cadena de una palabra. su codigo es el siguiente.


org 100h
include 'emu8086.inc'
mov si, 0   
 
 
comienzo:
mov al, msg2[0] 

cmp msg[si],"$" 
 jz resultado2       
cmp msg[si], al
 jne seguir 


mov di, 1       

comprobar:

 mov al, msg2[di]
 mov bx, di
 cmp msg[si+bx], al     ;posicion de la letra coincidente + di, comparar con la cadena
 jne seguir
         


 inc di               

 cmp msg2[di],"$"     
 jz resultado


loop comprobar

seguir: 

  inc si
   
 
 
loop comienzo

   

resultado:

  mov dx, offset msg3   
  mov ah, 9           
  int 21h               
  jmp final
 
resultado2:
    mov dx, offset msg4
    mov ah, 9
    int 21h
    jmp final

final:

   
    printn ""
    printn ""
    print "presione para salir..."
    mov ah,0
    int 16h
    ret


msg db "tecnologico$"
msg2 db "gi$"

msg3 db "Si se encuentra$"
msg4 db "no se encuentra$"




capturas del programa en funcionamiento:






programa mensaje

programa que utiliza loop en emu8086.

el siguiente programa despliega el mensaje cuantas veces marque el usuario.

include "emu8086.inc"
org 100h

.data
pro db 2 dup (?) 

.code
llamar proc
    printn "" 
    print  "cuantas veces quiere repetir el mensaje: "
    call scan_num 
    mov pro[0],cl
    printn ""
    xor ax,ax
    add al,pro[0]

mensaje:
printn "mensaje"
loop mensaje
   
 
 
     
llamar endp

exit:
    printn ""
    printn ""
    print "presione para salir..."
    mov ah,0
    int 16h
    ret
define_print_string
define_print_num
define_print_num_uns
define_scan_num
end

jueves, 28 de febrero de 2019

promedio

pequeño programa que sirve para sacar promedio de una calificación de 3 materias, no obtiene resultados decimales



name "calcula el promedio de tres materias"
include "emu8086.inc"
org 100h 

.data
pro db 4 dup (?)  

.code
promedio proc
    printn ""  
    print "introduce una calificacion: "
    call scan_num  
    mov pro[0],cl
    printn ""
    print "introduce la 2da calificacion: "
    call scan_num
    mov pro[1],cl
    printn ""
    print "introduce la 3ra calificacion: "
    call scan_num
    mov pro[2],cl
    printn ""
    print "numero de materias: "
    call scan_num
    mov pro[3],cl
    xor ax,ax
    add al,pro[0]
    add al,pro[1]
    add al,pro[2]
    div pro[3]
    printn ""
    print "promedio es= "
    call print_num
      
promedio endp

exit:
    printn ""
    printn ""
    print "presione para salir..."
    mov ah,0
    int 16h
    ret
define_print_string
define_print_num
define_print_num_uns
define_scan_num

end








jueves, 31 de enero de 2019

2 diferentes formas de crear hola mundo en emu8086

 1.- en la siguiente captura se muestra la primera opción para crear el programa hola mundo:


y una captura ejecutando el programa


2.- en la siguiente captura se muestra el segundo código para crear el programa hola mundo


y aquí su ejecución




miércoles, 30 de enero de 2019

hola mundo en emu8086 mas nombre

programa hola mundo mas nombre en lenguaje ensamblador emu8086.

programa sencillo para aprender un poco de lo que es emu8086, el codigo es el siguiente: