;PROGRAMA PARA OBTENER ESTADISTICA DE UNA ENCUESTA
.MODEL LARGE
.STACK
;----------------------------------------------------------------------------------------------
; El data segment permite reducir espacio de memoria al direccionar fuera del entorno de código
;----------------------------------------------------------------------------------------------
DATOS SEGMENT ;area de segmento de datos.
Mensaje1 DB 13,10,'Ingrese sexo de la persona (M:Mujer / H:Hombre) $'
Mensaje2 DB 13,10,'Ingrese estado civil persona (C:Casado / S:Soltero / V:Viudo / D:Divorsiado) $'
Mensaje3 DB 13,10,'Ingrese nivel de estudio (B:Basica/M:Media /T:Tecnico /U:Universitario) $'
Mensaje4 DB 13,10,'Total Mujeres $',13,10
Mensaje5 DB 13,10,'Total Hombres $',13,10
Mensaje6 DB 13,10,'Total Casados $',13,10
Mensaje7 DB 13,10,'Total Solteros $',13,10
Mensaje8 DB 13,10,'Total Viudos $',13,10
Mensaje9 DB 13,10,'Total Divorsiados $',13,10
Mensaje10 DB 13,10,'Total Basica $',13,10
Mensaje11 DB 13,10,'Total Media $',13,10
Mensaje12 DB 13,10,'Total Tecnico $',13,10
Mensaje13 DB 13,10,'Total Universitario $',13,10
Mensaje14 DB 13,10,'Total Encuestados $',13,10
Mensaje DB 13,10,'Chao pescado $',13,10
Salida DB 13,10,'Desea continuar [S/N] : $'
Fin DB 13,10,'Hasta la vista baby ...$'
; Definición de variables
Mujeres DB 0 ; Total mujeres
Hombres DB 0 ; total hombres
Casados DB 0 ; total casados
Solteros DB 0 ; total solteros
Viudos DB 0 ; total viudos
Divorsiados DB 0 ; total divorsiados
Bas DB 0 ; total Basica
Med DB 0 ; total Media
Tec DB 0 ; total Tecnico
Uni DB 0 ; total Universitario
Enc DB 0 ; total Encuestados
Input DB 0 ;captura por teclado el valor.
;----------------------------------------------------------------------------------------------
; Fin del segmento de datos
;----------------------------------------------------------------------------------------------
DATOS ENDS
PILA SEGMENT STACK ;declaracion de pila.
DB 1024 DUP(0)
PILA ENDS ;fin de pila.
;----------------------------------------------------------------------------------------------
; El Code segment permite reducir espacio de memoria al direccionar fuera del entorno de código
;----------------------------------------------------------------------------------------------
CODIGO SEGMENT 'CODE'
ASSUME CS:CODIGO,DS:DATOS,SS:PILA
MOV CX,0 ;inicio del programa.
MOV AX,DATOS
MOV DS,AX
CONTINUA:
MOV DX,OFFSET Mensaje1 ; Solicita el sexo de la persona
MOV AH,09H
INT 21H
SEXO:
MOV AH,01H
INT 21H
MOV Input,AL
CMP Input,'H'
JE Hombre
CMP Input,'M'
JE Mujer
JMP SEXO; si no corresponde a M o H vuelve a solicitar sexo
Mujer: ;incrementa mujer y avanza.
MOV DL,Mujeres
INC DL
MOV Mujeres,DL
JMP OTRO
Hombre: ;incrementa hombre y avanza.
MOV DL,Hombres
INC DL
MOV Hombres,DL
OTRO:
MOV DX,OFFSET Mensaje2 ; Solicita estado civil de la persona.
MOV AH,09H
INT 21H
ESTADO:
MOV AH,01H
INT 21H
MOV Input,AL
CMP Input,'C'
JE Casado
CMP Input,'S'
JE Soltero
CMP Input,'V'
JE Viudo
CMP Input,'D'
JE Divorsiado
JMP ESTADO; si no corresponde a C,S,V o D vuelve a solicitar estado civil
Casado: ;incrementa Casado y avanza.
MOV DL,Casados
INC DL
MOV Casados,DL
JMP LEE
Soltero: ;incrementa solteros y avanza.
MOV DL,Solteros
INC DL
MOV Solteros,DL
Viudo: ;incrementa viudos y avanza.
MOV DL,Viudos
INC DL
MOV Viudos,DL
Divorsiado: ;incrementa divorsiados y avanza.
MOV DL,Divorsiados
INC DL
MOV Divorsiados,DL
LEE:
MOV DX,OFFSET Mensaje3 ; Solicita Nivel de estudios de la persona.
MOV AH,09H
INT 21H
NIVEL:
MOV AH,01H
INT 21H
MOV Input,AL
CMP Input,'B'
JE Basica
CMP Input,'M'
JE Media
CMP Input,'T'
JE Tecnico
CMP Input,'U'
JE Universitario
JMP NIVEL; si no corresponde a B o M o T o U vuelve a solicitar Nivel de estudio
Basica: ;incrementa Basica y avanza.
MOV DL,Bas
INC DL
MOV Bas,DL
JMP Sigue
Media: ;incrementa Media y avanza.
MOV DL,Med
INC DL
MOV Med,DL
JMP Sigue
Tecnico: ;incrementa Tecnico y avanza.
MOV DL,Tec
INC DL
MOV Tec,DL
JMP Sigue
Universitario: ;incrementa Universitario y avanza.
MOV DL,Uni
INC DL
MOV Uni,DL
Sigue: ;evalua si ingresar otro registro o sale del programa.
MOV DX,OFFSET Salida
MOV AH,09H
INT 21H
MOV AH,01H
INT 21H
CMP AL,'N'
JE FINAL
JMP Continua
FINAL:
MOV DX,OFFSET Mensaje4
MOV AH,09H
INT 21H
MOV DL,Mujeres ; IMPRIME MUJERES ENCUESTADAS
ADD DL,30H
MOV AH,02H
INT 21H
MOV DX,OFFSET Mensaje5
MOV AH,09H
INT 21H
MOV DL,Hombres ; IMPRIME HOMBRES ENCUESTADAS
ADD DL,30H
MOV AH,02H
INT 21H
MOV DX,OFFSET Mensaje6
MOV AH,09H
INT 21H
MOV DL,Casados ; IMPRIME CASADOS ENCUESTADOS
ADD DL,30H
MOV AH,02H
INT 21H
MOV DX,OFFSET Mensaje7
MOV AH,09H
INT 21H
MOV DL,Solteros ; IMPRIME SOLTEROS ENCUESTADOS
ADD DL,30H
MOV AH,02H
INT 21H
MOV DX,OFFSET Mensaje8
MOV AH,09H
INT 21H
MOV DL,Viudos ; IMPRIME VIUDOS ENCUESTADOS
ADD DL,30H
MOV AH,02H
INT 21H
MOV DX,OFFSET Mensaje9
MOV AH,09H
INT 21H
MOV DL,Divorsiados ; IMPRIME DIVORSIADOS ENCUESTADOS
ADD DL,30H
MOV AH,02H
INT 21H
MOV DX,OFFSET Mensaje10
MOV AH,09H
INT 21H
MOV DL,Bas; IMPRIME BASICA ENCUESTADOS
ADD DL,30H
MOV AH,02H
INT 21H
MOV DX,OFFSET Mensaje11
MOV AH,09H
INT 21H
MOV DL,Med; IMPRIME MEDIA ENCUESTADOS
ADD DL,30H
MOV AH,02H
INT 21H
MOV DX,OFFSET Mensaje12
MOV AH,09H
INT 21H
MOV DL,Tec; IMPRIME TECNICO ENCUESTADOS
ADD DL,30H
MOV AH,02H
INT 21H
MOV DX,OFFSET Mensaje13
MOV AH,09H
INT 21H
MOV DL,Uni; IMPRIME DIVORSIADOS ENCUESTADOS
ADD DL,30H
MOV AH,02H
INT 21H
; Mensaje de salida y cierre
MOV DX,OFFSET Fin
MOV AH,09H
INT 21H
CODIGO ENDS ;fin del segmento de codigo.
END ;fin del programa.
|