Está en la página 1de 6

.MODEL TINY .

DATA ;VARIABLES C_H DB C_M DB C_S DB C_C DB PARA OBTENER EL TIEMPO 2 DUP (' ') 2 DUP (' ') 2 DUP (' ') 2 DUP (' ')

;VARIABLES PARA MOVER LA EL CUADRITO CAD DB '$' PC_X DB 0 PC_Y DB 0 R_I DB 0 C_I DB 0 R_F DB 0 C_F DB 0 ;VARIABLES DE INTERFAZ IF_DE DB ' DE ','$' IF_SELE DB 'SELECCIONE UNA OPCION : ',0AH,0DH,'',0AH,0DH,'2----OBTIENE TIEMP O : ',0AH,0DH,'',0AH,0DH,'4----SALIR DEL PROGRAMA : ',0AH,0DH,0AH,0DH,0AH,0DH,'$ ' IF_SON DB 'SON LAS : ','$'

IF_H IF_M IF_S IF_C

DB DB DB DB

' ' ' '

HORAS,','$' MINUTOS, ','$' SEGUNDOS, ','$' CENTESIMAS ','$'

.CODE .STARTUP MOV AX,@DATA MOV DS,AX ;PROCEDIMIENTO PARA MOVER EL CUADRITO ;-------------------------------------------------INICIO: MOVER: CALL CUADRO CALL IMP_TEX LEE_TEC: MOV AH,00H INT 16H CMP AL,00H JE FLE_AB ;COMPARA PARA VER SI ES ENTER CMP AL,0DH JE VERCUAL VERCUAL: CMP CX,0100H CMP CX,0200H JE TIEMPO CMP CX,0300H

CMP CX,0400H JE FIN JNE LEE_TEC JMP FIN FLE_AB: CMP JNE INC INC INC JMP FLE_AR: CMP JNE DEC DEC DEC JMP FLE_D: CMP JNE INC INC INC JMP FLE_I: CMP AH,4BH JNE LEE_TEC DEC PC_X DEC C_I DEC C_F JMP MOVER CUADRO PROC ;RUTINA LIMPIAPANTALLA MOV AH, 06 MOV AL, 0 MOV CX, 0 MOV BH, 07H MOV DX, 184FH INT 10H ;///////////////////////////////// MOV AX,0601H MOV BH,35H MOV CH,R_I MOV CL,C_I MOV DH,R_F MOV DL,C_F INT 10H ;IMPRIME MENU------------------------------------MENUU: MOV BH,00H MOV DH,0 MOV DL,2 MOV AH,02H INT 10H LEA DX,IF_SELE MOV AH,09H INT 21H AH,4DH FLE_I PC_X C_I C_F MOVER AH,48H FLE_D PC_Y R_I R_F MOVER AH,50H FLE_AR PC_Y R_I R_F MOVER

RET CUADRO ENDP IMP_TEX PROC MOV AH,02H MOV BH,0 MOV DH,PC_Y MOV DL,PC_X INT 10H LEA DX,CAD MOV AH,09H INT 21H RET IMP_TEX ENDP IMPRIME: MOV DL,[DI] MOV AH,02H INT 21H DEC DI DEC CX CMP CX,0 JNE IMPRIME MOV AH,01H INT 21H MOV MOV MOV MOV MOV INT MOV MOV MOV MOV INT AH,06 AL,0 CX,0 BH,07H DX,184FH 10H BH,0H DH,10 DL,20 AH,02H 10H

JMP INICIO TIEMPO: MOV AH,06 MOV AL,0 MOV CX,0 MOV BH,07H MOV DX,184FH INT 10H ;CAPTURA LA HORA MOV AH, 2CH INT 21H MOV C_H,CH MOV C_M,CL MOV C_S,DH MOV C_C,DL ;COONVIERTE LA HORA MOV AH,0

MOV AL,C_H LEA BX,C_H MOV BL,0AH MOV DIV MOV ADD INC MOV DIV MOV ADD INC AH,0 BL [BX],AH [BX],30H BX AH,0 BL [BX],AH [BX],30H BX

LEA DX,IF_SON MOV AH,09H INT 21H DEC MOV MOV INT DEC MOV MOV INT BX DL,[BX] AH,02H 21H BX DL,[BX] AH,02H 21H

LEA DX,IF_H MOV AH,09H INT 21H ;CONVIERTE LOS MINUTOS MOV AL,C_M LEA BX,C_M MOV BL,0AH MOV DIV MOV ADD INC MOV DIV MOV ADD INC DEC MOV MOV INT DEC MOV MOV INT AH,0 BL [BX],AH [BX],30H BX AH,0 BL [BX],AH [BX],30H BX BX DL,[BX] AH,02H 21H BX DL,[BX] AH,02H 21H

LEA DX,IF_M MOV AH,09H INT 21H ;CONVIERTE LOS SEGUNDOS ACA: MOV AL,C_S

LEA BX,C_S MOV BL,0AH MOV DIV MOV ADD INC MOV DIV MOV ADD INC DEC MOV MOV INT DEC MOV MOV INT AH,0 BL [BX],AH [BX],30H BX AH,0 BL [BX],AH [BX],30H BX BX DL,[BX] AH,02H 21H BX DL,[BX] AH,02H 21H

LEA DX,IF_S MOV AH,09H INT 21H ;CONVIERTE LAS CENTESIMAS MOV AL,C_C LEA BX,C_C MOV BL, 0AH MOV DIV MOV ADD INC MOV DIV MOV ADD INC DEC MOV MOV INT DEC MOV MOV INT AH,0 BL [BX],AH [BX],30H BX AH, 0 BL [BX],AH [BX],30H BX BX DL,[BX] AH,02H 21H BX DL,[BX] AH,02H 21H

LEA DX,IF_C MOV AH,09H INT 21H MOV AH,01H INT 21H JMP INICIO CAPTURA PROC MOV AH, 01H

INT 21H SUB AL, 30H MOV AH, 0 RET JMP ACA FIN: MOV MOV MOV MOV MOV INT MOV MOV MOV MOV INT AH,06 AL,0 CX,0 BH,07H DX,184FH 10H BH,0H DH,10 DL,20 AH,02H 10H

MOV AH,09H INT 21H MOV AH,01H INT 21H MOV AH,4CH INT 21H END

También podría gustarte