ejemplo en emu8086



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


?
1
2
3
4
5
6
7
8
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.



?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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