23
Programs Programs Programs Programs using using using using DOS Interrupt Functions DOS Interrupt Functions DOS Interrupt Functions DOS Interrupt Functions Presentation by: C. Thiruvenkatesan C. Thiruvenkatesan C. Thiruvenkatesan C. Thiruvenkatesan Associate Professor / ECE SSN College of Engineering

Ex8 DOS InterruptFunctions

  • Upload
    venki

  • View
    231

  • Download
    1

Embed Size (px)

DESCRIPTION

8086 Experiments using DOS Interrupt functions

Citation preview

ProgramsProgramsProgramsPrograms usingusingusingusing DOS Interrupt Functions DOS Interrupt Functions DOS Interrupt Functions DOS Interrupt FunctionsPresentation by:C. Thiruvenkatesan C. Thiruvenkatesan C. Thiruvenkatesan C. ThiruvenkatesanAssociate Professor / ECE SSN College of EngineeringPrograms for Programs for Programs for Programs for1. 1. 1. 1. Displaying System Time Displaying System Time Displaying System Time Displaying System Time2. 2. 2. 2. Displaying System Date Displaying System Date Displaying System Date Displaying System Date3. 3. 3. 3. Displaying System Day Displaying System Day Displaying System Day Displaying System Day4. 4. 4. 4. Password Checking Password Checking Password Checking Password Checkingusingusingusingusing DOS Interrupt Functions DOS Interrupt Functions DOS Interrupt Functions DOS Interrupt FunctionsDOS Interrupts Used: DOS Interrupts Used: DOS Interrupts Used: DOS Interrupts Used:INT 21 H / AH=2C H - GET SYSTEM TIMEReturn: CH = Hour CL = Minute DH = Second DL = 1/100 secondsINT 21 H / AH=2A H - GET SYSTEM DATEReturn: CX = Year (1980-2099). DH = Month. DL = Day. AL = Day of week (00h=Sunday)INT 21 H / AH=02 H - DISPLAY OUTPUT (a single character)Outputs the character in DL to the standard output device.INT 21 H / AH= 09H DISPLAY OUTPUT (STRING)Sends the characters in the string to the standard output device.The character string in memory must be terminated by a $ (24H).INT 21 H / AH=08 H - Wait for console input without echo Terminates the current process and transfers control to the invoking process.INT 21 H / AH=4C H - TERMINATE A PROCESS (EXIT)Terminates the current process and transfers control to the invoking process.Title Program to Display System Time in HH/MM/SS format.MODEL SMALL.DATA.CODESTART:MOV AX, @DATAMOV DS, AX; Hour PartHOUR: MOV AH, 2CH; To get System TimeINT 21HMOV AL, CH ; Hour is in CHAAMMOV BX, AXCALL DISPMOV DL, ':'MOV AH, 02H; To Print ":" in DOSINT 21H1; Minutes PartMINUTES: MOV AH, 2CH; To get System TimeINT 21HMOV AL, CL ; Minutes is in CLAAMMOV BX, AXCALL DISPMOV DL, ':'; To Print ":" in DOSMOV AH, 02HINT 21H; Seconds PartSeconds: MOV AH, 2CH; To get System TimeINT 21HMOV AL, DH ; Seconds is in DHAAMMOV BX, AXCALL DISP1; To terminate the ProgramMOV AH, 4CH ; To Terminate the ProgramINT 21H; Display PartDISP PROCMOV DL, BH; Since the values are in BX, BH PartADD DL, 30H ; ASCII AdjustmentMOV AH, 02H; To Print in DOSINT 21HMOV DL, BL ; Since the values are in BX, BL Part ADD DL, 30H ; ASCII AdjustmentMOV AH, 02H ; To Print in DOSINT 21HRETDISP ENDP; End Display ProcedureEND START ; End of MAIN1Title Program to Display System Date in DD/MM/YYYY format.MODEL SMALL.DATA.CODESTART:MOV AX, @DATAMOV DS, AX; Date PartDate: MOV AH, 2AH; To get System DateINT 21HMOV AL, DL ; Date is in DLAAMMOV BX, AXCALL DISPMOV DL, '/'MOV AH, 02H; To Print ":" in DOSINT 21H2; Month PartMonth: MOV AH, 2AH; To get System DateINT 21HMOV AL, DH ; Month is in DHAAMMOV BX, AXCALL DISPMOV DL, '/'; To Print ":" in DOSMOV AH, 02HINT 21H2; Year PartYear: MOV AH, 2AH; To get System DateINT 21HMOV AL, 14H; Year is in CX, first partAAMMOV BX, AXCALL DISPMOV AH, 2AH; To get System DateINT 21HADD CX, 0F830H ; To negate the effects of 16-bit valueMOV AL, CL; Year is in CX, second partAAMMOV BX, AXCALL DISP2; To terminate the ProgramMOV AH, 4CH ; To Terminate the ProgramINT 21H; Display PartDISP PROCMOV DL, BH; Since the values are in BX, BH PartADD DL, 30H ; ASCII AdjustmentMOV AH, 02H; To Print in DOSINT 21HMOV DL, BL ; BL Part ADD DL, 30H ; ASCII AdjustmentMOV AH, 02H ; To Print in DOSINT 21HRETDISP ENDP; End Display ProcedureEND START ; End of MAIN2TitleAn Assembly Language Program to Display System Day.MODEL SMALL.DATADMSG0 DB 10,13,'SUNDAY ','$'DMSG1 DB 10,13,'MONDAY ','$'DMSG2 DB 10,13,'TUESDAY','$'DMSG3 DB 10,13,'WEDNESDAY','$'DMSG4 DB 10,13,'THURSDAY ','$'DMSG5 DB 10,13,'FRIDAY ','$'DMSG6 DB 10,13,'SATURDAY ','$'3.CODESTART:MOV AX, @DATAMOV DS, AXMOV AH, 2AH; To get System DateINT 21HCMP AL, 00H ; Day is in ALJNE NXT1MOV DX, OFFSET DMSG0CALL DISPNXT1: CMP AL, 01H ; Day is in ALJNE NXT2MOV DX, OFFSET DMSG1CALL DISPNXT2: CMP AL, 02H ; Day is in ALJNE NXT3MOV DX, OFFSET DMSG2CALL DISP3NXT3: CMP AL, 03H ; Day is in ALJNE NXT4MOV DX, OFFSET DMSG3CALL DISPNXT4: CMP AL, 04H ; Day is in ALJNE NXT5MOV DX, OFFSET DMSG4CALL DISPNXT5: CMP AL, 05H ; Day is in ALJNE NXT6MOV DX, OFFSET DMSG5CALL DISPNXT6: CMP AL, 06H ; Day is in ALJNE TERMIMOV DX, OFFSET DMSG6CALL DISP3; To terminate the ProgramTERMI: MOV AH, 4CH ; To Terminate the ProgramINT 21H; Display PartDISPPROCMOV AH, 09H ; To Print in DOSINT 21HRETDISPENDP; End Display ProcedureEND START ; End of MAIN3Program to Display System Time in HH/MM/SS formatProgram to Display System Date in DD/MM/YYYY formatProgram to Display System Day321TITLE Program to Check whether the Password entered is correct or not;; PASSWORD IS SSNECEDATASEGMENTPASSWORD DB 'SSNECE'LEN EQU ($-PASSWORD)RMSG1 DB 10,13,'ENTER YOUR PASSWORD: $'CMSG2 DB 10,13,01,' GOOD, CORRECT PASSWORD ! ! ',02,'$'ICMSG3 DB 10,13,'SORRY, INCORRECT PASSWORD!$'NEW DB 10,13,'$'INST DB 10 DUP(0)DATAENDS4CODESEGMENTASSUME CS:CODE, DS:DATASTART:MOV AX, DATAMOV DS, AXLEA DX, RMSG1MOV AH, 09HINT 21HMOV SI, 00HBACK1:MOV AH, 08HINT 21HCMP AL, 0DH ; check for carriage return JE SKIP1MOV [INST+SI], ALMOV DL,'*'MOV AH, 02HINT 21HINC SIJMP BACK14SKIP1:MOV BX, 00HMOV CX, LENCHECK:MOV AL, [INST+BX]MOV DL, [PASSWORD+BX]CMP AL, DLJNE FAILINC BXLOOP CHECKLEA DX, CMSG2MOV AH, 09HINT 21HJMP FINISH4FAIL:LEA DX, ICMSG3MOV AH, 09HINT 21HFINISH:MOV AH, 4CHINT 21HCODEENDSEND STARTEND4