DSEG SEGMENT 'DATA'
; add your data here!
b db 10 ;تعريف داده ها
c db ?
h db 'please enter time hh_mm_ss: ',"$"
m db 'please enter data yy/mm/dd: ',"$"
n db 'Mostafa Hatami ',"$"
DSEG ENDS
SSEG SEGMENT STACK 'STACK'
db 256 DUP(0)
SSEG ENDS
CSEG SEGMENT 'CODE'
START PROC
assume cs:cseg,ds:dseg,ss:sseg
; set segment registers:
MOV AX, DSEG
MOV DS, AX
MOV ES, AX
mov ah,6h ;پاک کردن صفحه نمايش
mov al,25
mov ch,0
mov cl,0
mov dh,24
mov dl,79
mov bh,7
int 10h
;انتقال مکان نما
mov ah,2h
mov dh,1
mov dl,25
mov bh,0
int 10h
lea dx,n ;چاپ نام
mov ah,9h
int 21h
mov ah,2h ;انتقال مکان نما
mov dh,2
mov dl,25
mov bh,0
int 10h
call disp_time ;فراخواني زير برنامه نمايش زمان
call disp_data ;فراخواني زير برنامه نمايش تاريخ
;==========================================================
;==========================================================
;==========================================================
mov ah,2h ;نتقال مکان نما
mov dh,3
mov dl,25
mov bh,0
int 10h
lea dx,h ;چاپ پيغام ورود زمان
mov ah,9h
int 21h
call in_time ;فراخواني زير برنامه ورود زمان
mov ah,2h ;نتقال مکان نما
mov dh,6
mov dl,25
mov bh,0
int 10h
call disp_time ;فراخواني زير برنامه نمايش زمان
mov ah,2h ;انتقال مکان نما
mov dh,7
mov dl,25
mov bh,0
int 10h
lea dx,m ;چاپ پيغام ورود تاريخ
mov ah,9h
int 21h
call in_data ;فراخواني زير برنامه ورود تاريخ
mov ah,2h ;انتقال مکان نما
mov dh,8
mov dl,25
mov bh,0
int 10h
call disp_data ;فراخواني زير برنامه نمايش تاريخ
mov ah,6h ;پاک کردن صفحه نمايش
mov al,25
mov ch,0
mov cl,0
mov dh,24
mov dl,79
mov bh,7
int 10h
lop:
mov ah,2h ;انتقال مکان نما
mov dh,2
mov dl,25
mov bh,0
int 10h
call disp_time ;فراخواني زير برنامه نمايش زمان
call disp_data ;فراخواني زير برنامه نمايش تاريخ
jmp lop ;برگشت به حلقه
MOV AX, 4C00h ; exit to operating system.
INT 21h
START ENDP
;==============================================
disp_time proc
mov ah,02h ;وقفه گرفتن زمان از سيستم
int 1ah
push cx ;تبديل کد بي سي دي براي ثبات ch
shr ch,4
add ch,30h
mov ah,02h
mov dl,ch
int 21h
pop cx
shl ch,4
shr ch,4
add ch,30h
mov ah,2h
mov dl,ch
int 21h
mov ah,2h ;چاپ کاراکتر :
mov dl,3ah
int 21h
push cx ;تبديل کد بي سي دي براي ثبات cl
shr cl,4
add cl,30h
mov ah,02h
mov dl,cl
int 21h
pop cx
shl cl,4
shr cl,4
add cl,30h
mov ah,2h
mov dl,cl
int 21h
mov ah,2h ;چاپ کاراکتر :
mov dl,3ah
int 21h
push dx ;تبديل کد بي سي دي براي ثبات dl
shr dh,4
add dh,30h
mov ah,02h
mov dl,dh
int 21h
pop dx
shl dh,4
shr dh,4
add dh,30h
mov ah,2h
mov dl,dh
int 21h
mov ah,2h ;وقفه کاراکتر نول
mov dl,00h
int 21h
mov ah,2h
mov dl,00h
int 21h
ret
disp_time endp
;============================================
disp_data proc
mov ah,04h ;وقفه نمايش تاريخ
int 1ah
push dx ;تبديل کد بي سي دي براي ثبات cl
push cx
shr cl,4
add cl,30h
mov ah,02h
mov dl,cl
int 21h
pop cx
shl cl,4
shr cl,4
add cl,30h
mov ah,2h
mov dl,cl
int 21h
mov ah,2h ;وقفه نمايش کاراکتر/
mov dl,2fh
int 21h
pop dx ;تبديل کد بي سي دي براي ثباتdh
push dx
shr dh,4
add dh,30h
mov ah,02h
mov dl,dh
int 21h
pop dx
push dx
shl dh,4
shr dh,4
add dh,30h
mov ah,2h
mov dl,dh
int 21h
mov ah,2h ;وقفه نمايش کاراکتر/
mov dl,2fh
int 21h
pop dx ;تبديل کد بي سي دي براي ثباتdl
push dx
shr dl,4
add dl,30h
mov ah,02h
int 21h
pop dx
shl dl,4
shr dl,4
add dl,30h
mov ah,2h
int 21h
ret
disp_data endp
;=======================================
in_time proc
mov ah,01h
int 21h
sub al,30h
shl al,4
mov ch,al
mov ah,01h
int 21h
sub al,30h
add al,ch
mov ch,al
mov ah,2h
mov dl,3ah
int 21h
mov ah,01h
int 21h
sub al,30h
shl al,4
mov cl,al
mov ah,01h
int 21h
sub al,30h
add al,cl
mov cl,al
mov ah,2h
mov dl,3ah
int 21h
mov ah,01h
int 21h
sub al,30h
shl al,4
mov dh,al
mov ah,01h
int 21h
sub al,30h
add al,dh
mov dh,al
mov ah,03h
mov dl,1h
int 1ah
ret
in_time endp
;=======================================
in_data proc
mov ah,01h
int 21h
sub al,30h
shl al,4
mov cl,al
mov ah,01h
int 21h
sub al,30h
add al,cl
mov cl,al
mov ah,2h
mov dl,2fh
int 21h
mov ah,01h
int 21h
sub al,30h
shl al,4
mov dh,al
mov ah,01h
int 21h
sub al,30h
add al,dh
mov dh,al
mov ah,2h
mov dl,2fh
int 21h
mov ah,01h
int 21h
sub al,30h
shl al,4
mov dl,al
mov ah,01h
int 21h
sub al,30h
add al,dl
mov dl,al
mov ah,05h
int 1ah
ret
in_data endp
CSEG ENDS
END START ; set entry point.