martes, 19 de febrero de 2019

Programas de ejemplos

En esta ocasión dejare la sintaxis de dos programas que hemos visto en clase para analizar su funcionamiento y el uso de los registros dentro de ambos programas.

Sintaxis 1



org 100h 

mov ax,100 ;pone al registro ax un valor de 9
mov bx,5 ;pone al registro bx un valor de 9

div bx ;divide lo que hay en ax, entre lo que se encuentra en bx

ret



Corrida del programa


Guarda en la parte alta del registro ax, el 100 en hexadecimal


Guarda en la parte alta del registro bx, el 5 en hexadecimal


Finalmente, realiza la operacion de division con lo que hay en bx, guardando el resultado en la parte alta del registro ax en hexadecimal.



Sintaxis 2
Para mayor comprensión(ya que este si es un programa mas extenso) he dejado en la sintaxis comentarios para así saber que se esta haciendo en cada una de las partes del código.




org 100h
.model small
.stack 64 ;segmento de pila
.data
    msg db "Ingrese su edad'$"
    msg1 db 13,10,"Eres mayor de edad.$"
    msg2 db 13,10,"Eres menor de edad.$"
    num1 db 0 ;Variable para la edad
    diez db 10 ;variable para poder imprimir dos caracteres y multiplicar el valor por 10    
    
.code ;Inicio del programa  
    inicio proc Far
    MOV AX,@DATA
    MOV DS,AX
    
    ;Despliega el mensaje 1
    MOV AH,09
    lea DX,msg
    int 21h
    
    ;Ingresa el numero
    MOV AH,01
    int 21h
    ;MOV num1,AX
    sub al,30h ;Convirtiendo a valor
    mul diez ;se multiplica el numero ingresado para las decenas
    mov num1,al ;se pasa a num la multiplicacion   
    
    ;Ingresa otro numero
    mov ah,01
    int 21h
    sub al,30h 
    add num1,al ;se suma a las decenas  
    mov al,num1
    
    ;Momento de evaluar  
    CMP AL,18
    JGE MAYOR ;En caso de ser mayor brinca aqui
    JMP MENOR ;en caso de ser menor de edad
    
    
    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
    

    
    
    inicio endp
    end

ret


Corrida del programa




No hay comentarios.:

Publicar un comentario