martes, 26 de febrero de 2019

Programas en EMU8086

Primer hola mundo


Salida del programa

Programa hola mundo

.STACK n sirve para fijar un tamaño n del segmento de pila, por defecto 1K.
.DATA abre el segmento de datos.
.CODE abre el segmento de código, al final código debe aparecer END.

Una vez inicializado los segmento se permite usar los símbolos @CODE y @DATA en lugar del
nombre de los segmentos de código y datos respectivamente.
Justo después de la directiva .CODE hay que inicializar el segmento de datos (ya que la directiva
no genera código):
MOV AX, @DATA
MOV DS, AX


Salida del programa:


Suma de un numero

Los numero se declaran dentro del programa y estos serán 5 y 3 después de la suma se hará un incremento en esa suma entonces: 5+3=8 a 8 se le incrementa 1 (inc bx) y despues se le suma el numero 6  entonces sera ahora: 9+6=15
Salida del programa

Incremento de un numero

Salida del programa

Programa que imprime las letra del abecedario



Salida del programa

Programa que imprime un mensaje 

Salida del programa

Suma de dos dígitos ingresados por el usuario


Salida del programa


Resta de dos números ingresados por el usuario

.model small
.stack 64
.data

 n1 db 0
 n2 db 0
 resta db 0
 msg1 db "Dame el primer valor " , '$'
 msg2 db 10,13,"Dame el segundo valor ",'$'
 msg3 db 10,13,"Resta= ",'$'
 .code
 begin proc far       
    ;direccionamos al segmentos de datos
    mov ax,@data
    mov ds,ax
   
    ; primer digito
    mov ah,09
    lea dx, msg1
    int 21h 
 
  ;Se lee el primer valor
    mov ah,01
    int 21h
    add al, 30h ;convierte el caracter en numero
    mov n1,al         
   
    ;Solicitamos el segundo digito
    mov ah,09
    lea dx, msg2
    int 21h
    mov ah,01
    int 21h
    sub al, 30h ; Convierte el caracter en numero
    mov n2,al
   
    ;Operacion
    mov al,n1
    sub al,n2
    sub al,30h ; Convierte a caracter 
    mov resta, al
    mov ah,09
    lea dx,msg3
    int 21h
   
    ;Se imprime el caracter con el servicio 02 de la int 21h
    mov ah,02
    mov dl,resta
    int 21h         
    begin endp
  end

Salida del programa


Division de un numero 100/5

Salida del programa

Programa que compara una calificación y muestra un mensaje de aprobado o reprobado


.model small
.stack 64
.data ;seccion de variables

   msg1 db "Dame una calificacion (seguida de un entero):$"
   aprobado db 13,10, "Aprobado$"
   reprobado db 13,10, "Reprobado$"
   VAR1 dw ?, "$"
   VAR2 dw ?, "$"
   VAR3 dw ?, "$" 

.CODE 
; inicia el segmento de codigo

resultado proc far
    mov ax, @data ; inicio 
    mov ds, ax
    
    ;desplegar primer mensaje
    mov ah, 09
    lea dx, msg1
    int 21h      
    
    ;pedir un caracter
    
    mov ah, 01
    int 21h
    mov VAR1, ax
    
    ;segundo caracter
    mov ah, 01
    int 21h
    mov VAR2, ax 
    
    ;tercer caracter
    mov ah, 01
    int 21h
    mov VAR3, ax
    
    ;evaluar la calficacion
    
    cmp al,13
    JE  CONTINUE  ;SALTA SI ES IGUAL A 13
    ;JGE CONTINUE
    JMP MAYOR
    
    ;INICIA FUNCION
    
CONTINUE: 
    MOV AX, VAR1
    CMP AL,037H  ;7 ES 37 EN ASCII
    JGE MAYOR   ;SALTA SI ES MAYOR A O IGUAL 
    JMP MENOR
    
MAYOR:
 MOV AH, 09
 LEA DX, APROBADO 
 INT 21H 
 JMP SALIR    

MENOR:
 MOV AH, 09
 LEA DX, REPROBADO 
 INT 21H 
 JMP SALIR 
 
SALIR:
   MOV AX, 4C00H
   INT 21H 
   
RESULTADO ENDP
END RESULTADO
       
Salida del programa

Programa que te dice si eres mayor o menor de edad


.model small
.stack 64 

.data
diez db 10 ;variable que se muliplica para obtener decimales
num1 db 0
msg db "Ingrese la edad: $"
msg1 db " Eres mayor de edad $ "
msg2 db " Eres menor de edad $ "

.code   

 inicio proc far
    mov ax, @data ;direccionamos el segmento de datos
    mov ds, ax ;los datos se mueven a ax
    
    ;primer letrero
    mov ah, 09
    lea dx, msg 
    int 21h
    
    mov ah, 01
    int 21h
    sub al, 30h
    mul diez ; se multiplica el numero ingresado para
    ;las decenas
    mov num1, al
    
    mov ah,01
    int 21h
    sub al,30h
    add num1, al
    mov al, num1
    
    cmp al,  18
    jge mayor
    jmp menor
    
             
mayor: 
mov ah, 09  
lea dx, msg1
int 21h
jmp fin
            
menor:
mov ah, 09
lea dx, msg2
int 21h
jmp fin
            
fin:
     MOV AX, 4C00H  
     int 21h
    
inicio endp

ret
    
 Salida  del programa




No hay comentarios:

Publicar un comentario

Unidad 3 -Unidad 4

Unidad 3 Modularizacion Programación modular Los avances en la programación de computadoras han permitido crear hermosas y grandes aplic...