EJERCICIOS DE RUTINAS

Ejemplos de programas 

. COMMENT  TIPO CABEZA
   *****************************************************************************************************************************
PRIMERO ASM - EJEMPLO DE PROGRAMA 

********************************************************************************************************************************

MODEL TINY MODELOS DE MEMORIA PEQUEÑO

. DATA DECLARAR VARIABLES .CONST 

MENSAJE DB " MI PRIMER PROGRAMA "

. CODE TO LO VENGA ES PROGRAMA CUERPO PRINCIPAL DEL PROGRAMA 


INICIO  
               MOV DX , OFFSET MENSAJE ; DIR COD . TEXTO 
               MOV  AH , 9 ; FUNCION IMP.CAD
               INT 21H ;   LLAMANDO SO
               MOV AH , 4CH  ;   FUNC . FIN PROGRAMA 
                INT 21H ; LLAMADA AL SO 
             
END INICIO ; FIN CUERPO PRINCIPAL
END. ;    FIN DEL PROGRAMA


Ejemplo de programa

 COMMENT GENERAR UN COMENTARIO  TIPO CABEZA
   ***************************************************************************** ***********************************
SUMA ASM_RUTINA DE SUMA 

**********************************************************************************************************************

MODEL TINY 

. DATA 
           NUM 1 DB BYTE
           NUM 2 DB BYTE
           RESULTADO DB BYTE 

. CODE  CUERPO PRINCIPAL DEL PROGRAMA 
INICIO

            MOV DL , NUM 1 ; CARGA NUM 1 A DL
             MOV AL , DL  ; CARGA DL EN AL
             MOV DL , NUM 2 ; CARGA NUM 2 A DL
             ADD AL , DL  ; SUMA DL CON AL
             MOV RESULTADO , AL ; CARGA AL EN RESULTADO

 END INICIO  FIN DEL CUERPO PRINCIPAL
 END. FIN DEL PROGRAMA


 N
Rutina
DESCRIPCION
1
Mov Cx , S ;
Carga S en C x
2
Mov Bx , 0 ;
Carga 0 en Bx
3
Mov Di , Bx ;
Carga  el valor Bx  en el registro  Di
4
Mov Si , Bx ;
Carga  el valor Bx  en el registro  SI
5
Otra vez CMP ARRAY [Bx] 20;
Compara el valor el valor del arreglo  con 20
6
JB MENOR;
Si en la comparación es 20  , salta a menor
7
INC DI;
Se incrementa el registro  DI
8
IMP SEGUIR ;
Se realiza un salto a seguir
9
MENOR INC SI ;
Se aumenta el valor de SI
10
SEGUIR ADD BX 2;
A Bx se le suma 2
11
DEC CX;
 Disminuye el valor de Cx
12
JNZ  OTRA_VEZ;
 Salta a OTRA_VEZ si ≠ 0
13
MOV AX,DI;
 Carga DI  en  AX
14
CMP AX , SI;
Realiza un comparación entre AX y Si
15
JNB MAS.20;
Salta a MAS_20 si  AX  CON Si es mayor o igual
16
JMP MENOS 20
Salta a MENOS_20


FUNCIONAMIENTO DE LA RUTINA

esta rutina basicamnete recorre un arreglo  y realiza comparaciones entre el valor de bx  o del arreglo al numero 20 , posteriormente realiza un salto para verificar si es menor o igual , el siquiente paso es aumentar el avlor de DI y luego hace un salto a sequir y aumentar el valor de SI que es un contador y DI se encargara de contar los iguales o mayores y SI se encarga de contar los menores , ahora le sumamos 2 al registro  bx  y disminuimos el valor de cx luego hacemos un salto a OTRA_vez  y si resulta ser ≠ 0 el valor que esta en DI  pasa a AX realizamos una comparacion entre AX y SI y realizamos un salto a MAS_20 si la comparacion de AX CON SI ES >= SI  esta no se cumple entonces el salto sera haci MENOS_20 



N
RUTINA
DESCRIPCION
1
MOV  CX , 4;
CARGA 4 EN CX
2
MOV BX , 0 ;
CARGA 0 EN BX
3
MOV DI  , BX ;
CARGA EL VALOR DE BX  EN EL REGISTRO DI
4
MOV SI ,  BX ;
CARGA EL VALOR DE BX  EN EL REGISTRO SI
5
OTRA_ VEZ  CMP ARRAY [BX], 2F
COMPARA EL VALOR DEL ARREGLO  EN 2F
6
JBE  MENOR ;
 SALTA  A “ MENOR “
7
INC  DI ;
INCREMENTA EL REGISTRO DI
8
IMP SEGUIR ;
SALTA A “ SEGUIR ”
9
MENOR INC  SI ;
INCREMENTA EL REGISTRO SI
10
SEGUIR  ADD BX , 2 ;
SUMA 2 CON BX
11
LOOP OTRA_VEZ ;
REPETIR HASTA QUE CX = 0

La rutina recorre el arreglo y realiza comparaciones entre BX y 2F y salta a MENOR  buscando que sea menor o igual , luego incrementamos t DI y saltamos a SEGUIR  e incrementamos SI para realizar una suma de 2 a bx y repetir el ciclo OTRA_VEZ hasta que cx valga 0



N
RUTINA
 DESCRIPCION
1
MOV AX , 30 ;
CARGA 30 EN AX
2
OTRA_VEZ DEC AX;
DECREMENTAR AX
3
CMP AX , 20 ;
COMPARA 20 CON AX
4
JNE OTRA_VEZ ;
SALTO DE COMPARACION DE SIGNO
5
ADICCIONAR INC AX ;
INCREMENTAR EL VALOR DE AX
6
CMP AX , 80 ;
COMPARA 80 CON AX
7
JBE ADICCIONAR :
SALTA SI 80 ES MENOR O IGUAL AX
8
MOV RESULT , AX ;
CARGA AX EN RESULT



N
RUTINA
DESCRIPCION
1
MOV CX , 9 ;
 CARGA 9 EN CX
2
MOV AX , 0 ;
CARGA 0 EN AX
3
MOV  SI , AX ;
 INICIALIZA EL INDICE
4
CICLO ADD AX , S ;
 SUMA S EN AX
5
MOV ARRAY [SI] ; AX ;
CARGA EL ARREGLO CON AX EN  POSICION SI
6
ADD SI , 2;
INCREMENTA EL INDICE  
7
LOOR , CICLO ;
VUELVE AL CICLO






No hay comentarios:

Publicar un comentario