Este programa lee el contenido del Archivo Maestro.dat y va leyendo los registros del mismo, se chequea el sueldo de la persona si es mayor a un numero se clasifica como empleado o como obrero, y se generan dos archivos (Empleado.dat y Obrero.dat) con los resultado de la clasificación
1: .MODEL SMALL
2: .STACK 64H
3: .DATA
4: NOMBRE1 DB "MAESTRO.DAT",0,0,0
5: NOMBRE2 DB "OBRERO.DAT",0,0,0
6: NOMBRE3 DB "EMPLEADO.DAT",0,0,0
7: DATOS1 DB 1000 DUP (?)
8: DATOS2 DB 1000 DUP (?)
9: DATOS3 DB 1000 DUP (?)
10: MANE DW ?
11: LISTO DB "!!! ARCHIVOS CREADOS!!!"
12: ATRIBUTO DB 70H
13:
14:
15: .CODE
16: MOV AX,@DATA
17: MOV ES,AX
18: MOV DS,AX
19: ; SE CARGARA EL CONTENIDO DEL ARCHIVO MAESTRO.DAT A LA MEMORIA
20: ; PARA LUEGO PROCESAR LOS DATOS. PARA ELLOS SE ABRE EL ARCHIVO:
21:
22: MOV AH,3DH
23: MOV AL,0
24: LEA DX,NOMBRE1
25: INT 21H
26: MOV MANE,AX
27:
28: ; SE LEE EL ARCHIVO
29: MOV AH,3FH
30: MOV BX,MANE
31: MOV CX,1000
32: LEA DX,DATOS1
33: INT 21H
34: ; Y SE CIERRA EL ARCHIVO
35: MOV AH,3EH
36: MOV BX,MANE
37: INT 21H
38: ; AHORA SE CLASIFICARAN LOS DATOS DEPENDIENDO DEL SUELDO, PARA ELLOS LEEREMOS
39: ; EL BYTE 31 DE CADA REGISTRO Y SI ES MAYOR QUE 35H Y ASI SABER SI ES MAYOR O IGUAL
40: ; A 5000
41:
42: LEA SI,DATOS1
43: LEA BX,DATOS2 ; LOS MENORES A 5000
44: LEA DI,DATOS3 ; LOS MAYORES O IGUALES A 5000
45: MOV DX,10
46: SIGUIENTE: MOV AL,[SI+30]
47: CMP AL,35H
48: JC MENOR
49: MOV CX,36
50: REP MOVSB
51: SALTO: DEC DX
52: JNZ SIGUIENTE
53: JMP GUARDAR
54: MENOR: MOV CX,36
55: SALTO1: MOV AL,[SI]
56: MOV BYTE PTR [BX],AL
57: INC SI
58: INC BX
59: LOOP SALTO1
60: JMP SALTO
61: GUARDAR: NOP
62: ; SE GUARDARAN PARA ELLO SE PROCEDE A CREAR EL ARCHIVO
63: ; PRIMERO HARE EL DE LOS EMPLEADOS
64:
65: MOV AH,3CH
66: MOV CX,0
67: LEA DX,NOMBRE3
68: INT 21H
69: MOV MANE,AX
70: ; AHORA LO ABRO
71: MOV AH,3DH
72: MOV AL,2
73: LEA DX,NOMBRE3
74: INT 21H
75: MOV MANE,AX
76: ; AHORA ESCRIBO
77: MOV AH,40H
78: MOV BX,MANE
79: MOV CX,1000
80: LEA DX,DATOS3
81: INT 21H
82: ; AHORA LO CIERRO Y LISTO
83: MOV AH,3EH
84: MOV BX,MANE
85: INT 21H
86:
87: ; SE COPIA Y PEGA EL BLOQUE DE ARRIBA CAMBIANDO
88: ; LOS BUFFER APUNTADOS
89:
90: MOV AH,3CH
91: MOV CX,0
92: LEA DX,NOMBRE2
93: INT 21H
94: MOV MANE,AX
95: ; AHORA LO ABRO
96: MOV AH,3DH
97: MOV AL,2
98: LEA DX,NOMBRE2
99: INT 21H
100: MOV MANE,AX
101: ; AHORA ESCRIBO
102: MOV AH,40H
103: MOV BX,MANE
104: MOV CX,1000
105: LEA DX,DATOS2
106: INT 21H
107: ; AHORA LO CIERRO
108: MOV AH,3EH
109: MOV BX,MANE
110: INT 21H
111: ; AHORA IMPRIMO EL MENSAJE QUE SE CREARON LOS ARCHIVOS
112: MOV AH,13H
113: MOV AL,1
114: MOV BH,0
115: MOV BL,ATRIBUTO
116: MOV CX,23
117: MOV DH,10
118: MOV DL,25
119: LEA BP,LISTO
120: INT 10H
121:
122: .EXIT(0)
123:
124: END
La estructura del archivo Maestro.DAT
1: Armando Iglesias 11390077 9999
2: Barry Bonds 12487963 2145
3: Edith Duarte 16120254 7235
4: Cristiano Ronaldo 10258654 1000
5: Nicole Kidman 14854961 4500
6: Jose Perez 10254789 1542
7: Maria Gonzales 15648979 2456
8: Jule Guariguata15741852 6250
9: Norkis Baptista 14895234 8500
10: Norelis Rodriguez 36589481 6584
No hay comentarios:
Publicar un comentario