domingo, 23 de mayo de 2010

Digitales III – Prof. Nando Vitti – 3ª Evaluación

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