Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Paralelo # 6
Fecha de presentacin:
19 de Diciembre de 2014
2014 2 TRMINO
Subrutinas
DB
DB
DB
DB
DB
DB
DB
NOMBRE
MATRIC
SUBMENU
DIA_MSJ
NOCHE_MSJ
AV_1
AV_2
DB
DB
DB
DB
DB
DB
DB
DB
DB
'MICROPROCESADORES',10,13,10,13
'MENU PRINCIPAL',10,13,10,13
'1. Nombre del Estudiante y Paralelo.',10,13,10,13
'2. Numero de Matricula.',10,13,10,13
'3. Proyecto #01 (SEMAFORO).',10,13,10,13
'4. Regresar a MSDOS.',10,13,10,13
'Selecciona una opcion: $'
DB
'Nombre: Kevin Hurtado Reyes',10,13,10,13
'
Paralelo: 6 $'
'Matricula: 201113851 $'
'SEMAFORO',10,10,13
'(1)---> DIA ',10,10,13
'(2)---> NOCHE ',10,13,10,13
'Seleccione el modo: $'
DB
'MODO DIA$'
'MODO NOCHE$'
'AV. QUITO$'
'AV. G.RENDON$'
.CODE
;Definicion de macros a utilizar durante la ejecucion del programa
LPANT MACRO FIL_0, COL_0, FIL_F, COL_F, COLOR
MOV AH,06H ;funcion de la interrrupcion del BIOS que activa el recorrido
MOV AL,00H
;desplazamiento por toda la pantalla
MOV BH,COLOR
;selecciona color
MOV CH,FIL_0 ;indica fila superior
MOV CL,COL_0 ;indica columna izquierda
MOV DH,FIL_F ;indica fila inferior
MOV DL,COL_f ;indica columna derecha
INT 10H
;interrupcion del BIOS
ENDM
;fin de la macro lpant
; -------------------------------------------------------CURSOR
MACRO
FILA,COL
MOV
AH,2
;fija posicion cursor
MOV
BH,0
;pgina 0
MOV
DH,FILA
;se escoje la fila
MOV
DL,COL
;se escoje la columna
INT
10H
;interrupcion del BIOS
ENDM
; -------------------------------------------------------DISPLAY
MACRO CADENA
MOV
AH,9
;peticion para desplegar en pantalla
LEA
DX, CADENA
;se carga la direccion efectiva de la cadena
INT
21H
;se llama a la interrupcion del DOS
END
;Listado de Subrutinas
;Subrutina DELAY de 500ms
DELAY PROC NEAR
MOV CX,10000
LT1:
MOV BH,255
LT2:
MOV BL,255
LT3:
NOP
;se realiza un lazo 255 veces
NOP
DEC BL
CMP BL,0
JNZ LT3
;si BL llego a cero, continua a la siguiente linea, caso contrario repite el
lazo LT3
DEC BH
CMP BH,0
JNZ LT2
LOOP LT1
;decrementa CX en 1 y repite el lazo LT1 hasta que CX=0
RET
DELAY ENDP
;----------------------------------------------------------------------------------------------------------------------;Subrutina SALIR
SALIR
PROC NEAR
MOV
AX,4C00H
INT
21H
RET
SALIR
ENDP
;-----------------------------------------------------------------------------------------------------------------------------;Programa Principal
MAIN
PROC
FAR
MOV
AX, @DATA
;migracion de datos a AX
MOV
DS, AX
MOV
ES, AX
INICIO:
LPANT 0,0,24,79,0EH
;limpia toda la pantalla
CURSOR 6,20
;coloca el cursor
DISPLAY MENU
PIDEOP:
INT
CMP
JNZ
MOV
21h
AL,'1'
OP2
AH,7
la opcion 2
LPANT 0,0,24,79,01EH
CURSOR
5,15
DISPLAY NOMBRE
;se muestra el autor
REG1:
CMP
JZ
CMP
JZ
JMP
MOV
AH,7
INT
21H
AL,'M'
INICIO
AL,'m'
INICIO
REG1
OP2:
CMP
JNZ
OP3
LPANT 0,0,24,79,01EH
CURSOR
DISPLAY MATRIC
AL,'2'
12,30
REG2:
CMP
JZ
CMP
JZ
JMP
INICIO
AL,'m'
INICIO
REG1
JZ
CMP
JZ
OP3:
PROYECTO
AL,'4'
FIN
MOV
AH,7
INT
21H
AL,'M'
CMP
AL,'3'
;SALIR
JMP
PIDEOP
vuelve a solicitar el ingreso
PROYECTO:
CURSOR
8,30
DISPLAY SUBMENU
MOV
AH,7
INT
21h
CMP
AL,'1'
JZ
DIA
CMP
AL,'2'
JZ
NOCHE
CMP
AL,'M'
JZ
INICIO
JMP
PROYECTO
;PROYECTO
LPANT 0,0,24,79,01EH
;se muestra el submen
;Ingreso de caracter
;DIA
;NOCHE
;MENU PRINCIPAL
;vuelve a solicitar
NOCHE:
LPANT 0,0,25,80,00H ; NEGRO, fondo negro
LPANT 4,16,22,32,010H ; AZUL, fondo azul
LPANT 4,48,22,64,010H ; AZUL ,fondo azul
;SEMAFORO_1
LPANT 5,17,9,31,000H ; ROJO APAGADO, todo negro
LPANT 11,17,15,31,0E0H ; AMARILLO PRENDIDO, fondo amarillo
LPANT 17,17,21,31,000H ; VERDE APAGADO, todo negro
;SEMAFORO_2
LPANT 5,49,9,63,040H ; ROJO PRENDIDO, fondo rojo
LPANT 11,49,15,63,000H ; AMARILLO APAGADO, todo negro
LPANT 17,49,21,63,000H ; VERDE APAGADO, todo negro
;SE MUESTRA EL TITULO
LPANT 0,31,0,49,0F4H
CURSOR 0,36
DISPLAY NOCHE_MSJ
;se rotula las calles
LPANT 2,17,2,31,0F0H
CURSOR 2,20
DISPLAY AV_1
LPANT 2,48,2,64,0F0H
CURSOR 2,50
DISPLAY AV_2
CALL DELAY
;SEMAFORO_1
LPANT 5,17,9,31,00H ; ROJO APAGADO
LPANT 11,17,15,31,00H ; AMARILLO APAGADO
LPANT 17,17,21,31,00H ; VERDE APAGADO
;SEMAFORO_2
LPANT 5,49,9,63,00H ; ROJO APAGADO
LPANT 11,49,15,63,00H ; AMARILLO APAGADO
LPANT 17,49,21,63,00H ; VERDE APAGADO
CALL DELAY
MOV AH, 6
MOV DL, 0FFH
tecla
INT 21H
CMP AL,'d'
JZ DIA
CMP AL,'M'
JZ INICIO
CMP
AL,'m'
JZ
INICIO
JMP NOCHE
DIA:
LPANT 0,0,25,80,0B0H ; CELESTE(DIA)
LPANT 4,16,22,32,010H ; AZUL
LPANT 4,48,22,64,010H ; AZUL
;SEMAFORO_1
LPANT 5,17,9,31,040H ; ROJO PRENDIDO
LPANT 11,17,15,31,00H ; AMARILLO APAGADO
LPANT 17,17,21,31,00H ; VERDE APAGADO
;SEMAFORO_2
LPANT 5,49,9,63,00H ; ROJO APAGADO
LPANT 11,49,15,63,00H ; AMARILLO APAGADO
LPANT 17,49,21,63,020H ; VERDE PRENDIDO
;SE MUESTRA EL TITULO
LPANT 0,31,0,49,0F4H
CURSOR 0,36
DISPLAY DIA_MSJ
;se rotula las calles
LPANT 2,17,2,31,0F0H
CURSOR 2,20
DISPLAY AV_1
LPANT 2,48,2,64,0F0H
CURSOR 2,50
DISPLAY AV_2
;retardo de 15 segundos
MOV AH,30
LAZO1:
CALL DELAY
DEC
AH
CMP AH,0
JNZ
LAZO1
MOV AH, 6
; Espera por tecla
MOV DL, 0FFH; ZF=1 si no apreta tecla
INT 21H
CMP AL,'n'
JZ NOCHE
CMP AL,'M'
JZ INICIO
CMP AL,'m'
JZ
INICIO
FIN:
MAIN
END
CALL
ENDP
SALIR
MAIN
6.-Conclusiones
7.- Recomendaciones
Opcin 1:
Opcin 2:
Opcin 3: