Categories
- 4th semester (27)
- 5th semester (3)
- ADA (13)
- Assembly Level Language (12)
- BE (45)
- C Language Programming (5)
- C language (20)
- C++ Language (5)
- CCP Lab programing (3)
- Computer Programming Lab (3)
- DAA Lab Programming (13)
- Data Structure and C++ laboratory Program (6)
- Data Structure and C++ labotary Program (5)
- Design and Analysis of algorithm (14)
- First Year (5)
- MASM (12)
- Microprocessor (12)
- Microprocessor lab program (12)
- System Software & OS Laboratory (5)
- Unix program (4)
- bachelor of engineering (30)
- basic (1)
- basic mathematics (2)
- beginners (10)
- c++ program (9)
- calculations (7)
- computer science (30)
- downloadable (5)
- engineering syllabus (4)
- simple program (6)
Trend Posts
Blogger news
Author
Followers
Showing posts with label Display Current Time from System. Show all posts
Showing posts with label Display Current Time from System. Show all posts
Friday, February 21, 2014
ASSUME DS:DATA,CS:CODE
DATA SEGMENT ; data segment starts
MSG DB 0AH, 0DH,'SYSTEM TIME IS : ','$'
DATA ENDS
DISP MACRO NUM ; DISP macro
definition starts here, to display the time on the monitor
PUSH AX ; push the AX content to stack
MOV DL, NUM
MOV AH, 02H ; using 02H service no. with DOS 21H
interrupt
INT 21H
POP AX ; pop the AX content
ENDM ; end of macro definition
HEXTOBCD
MACRO ; HEXTOBCD macro definition
starts here, to covert hex value
AAM ; to BCD ( ie: to convert hr and minute value in hex to BCD)
ADD AX, 3030H ; using AAM instruction and then add 3030H
to AX to get the ASCII value.
ENDM ; end of macro
definition.
CODE SEGMENT ; code segment
starts
START: MOV AX, DATA ; data segment
initialization
MOV DS, AX
MOV DX, OFFSET MSG ; get the offset
address of string stored in array MSG
MOV AH, 09H
INT 21H ; display MSG on
the screen using 09H with DOS 21H interrupt
MOV AH, 2CH ;
read the system time using 2CH service number with
INT 21H ; 21H DOS interrupt.
PUSH CX ;
push the system time information stored in CX to stack
CMP CH,
0CH ; compare the hour information stored in
CH with 0CH (12hr)
JB HRDISP ; if the current
hour is < 12, then jump to label NEXT
and
display.
SUB CH, 0CH ;
otherwise subtract 12 from the current hr stored in CH
HRDISP: MOV AL, CH ; copy the hr information in CH (Hex value) to AL.
; in order to use AAM instruction.
HEXTOBCD ; invoke HEXTOBCD macro to convert hr (Hex) to unpacked
; BCD format.
DISP AH ; invoke DISP macro to display the upper digit of hr information on the screen
DISP AL ; invoke DISP macro to display the lower digit of hr information on the screen
DISP ':' ; colon (:) is printed on
the screen
MOV AL, CL ;
copy the minute information (Hex) in CL to AL to use AAM
HEXTOBCD ; invoke HEXTOBCD macro to convert minute (Hex) to
; unpacked BCD format.
DISP AH ; invoke DISP macro to display the upper digit of minute information on the screen
DISP AL ; invoke DISP macro to display the lower digit
of minute information on the screen
DISP '-' ; hyphen (-) is
printed on the screen
POP
CX ; pop the system
time information stored in stack to CX
CMP CH, 0CH ; compare again
the hr information in CH with 12
JAE AGAIN ; if hr is > = to 12 then jump to
label AGAIN.
DISP 'A' ; otherwise display the current time as AM, by invoking DISP macro
DISP 'M' ; display the character A , M on the screen.
JMP EXIT ;
jump to label EXIT and terminate
AGAIN: CMP CH, 0CH ; again
compare the hr value with 12 and see
whether it is equal to 12 or not
JA NEXT ;
if it is > 12 then go to NEXT
and
display the time as PM
CMP
CL, 00 ; otherwise if hr =12 then again compare
minute in CL with 00
JNE
NEXT ;
if minute in CL is not equal to 00, then display the time as PM
DISP 'N' ; otherwise minute in CL=00 then display
the time as NOON (12:00)
DISP 'O' ; by invoking the DISP macro, display the
character N, O, O, N on the
DISP 'O' ; screen
DISP 'N'
JMP EXIT ;
jump to label EXIT to terminate
NEXT: DISP 'P'
DISP 'M' ; invoke the DISP macro to display the
characters P, M on the screen.
EXIT: MOV AH, 4CH ; terminate the program
INT
21H
CODE ENDS ; end of code
segment
END START ; end of program
Output:
D:\MASM>
Masm 9a.asm;
D:\MASM>
Link 9a.obj;
Subscribe to:
Posts (Atom)