Microprocessor and Microcontroller Lab 5 | Read Now

Microprocessor and Microcontroller Lab 5

5] Design and develop an assembly language program to read the current time and date from the system and display it in the standard format on the screen


5] Program Code (lab5a.asm)

.model small
.stack 10
.data
msg db 13,10,"the time is:"
time db ?,?,':',?,?,"$"

.code
mov ax,@data
mov ds,ax
mov ah,2ch
int 21h

mov dx,cx
mov cx,0
mov cl,dh
call convert

mov time,al
mov time+1,ah
mov cl,dl
call convert

mov time+3,al
mov time+4,ah
lea dx,msg              
mov ah,09h
int 21h
mov ah,4ch
int 21h

convert proc
mov ax,0
cmp cl,0
jz down

up:     add al,1
        daa
        loop up
        mov bl,10h
        div bl

down:   add al,30h
        add ah,30h
        ret
        convert endp
end

5] Program code(lab5b.asm)

.MODEL small 
.STACK 100h 
.DATA 
messl DB 10, 13, 'Today is $' ; 1041, 13=CR 

.CODE 
Today PROC 
MOV AX, @data 
MOV DS, AX 
MOV DX, OFFSET messl
MOV AH, 09h
INT 21H

MOV AH,2AH
INT 21H
PUSH CX
MOV CX,0
MOV CL, DL 
PUSH CX
MOV CL,DH
PUSH CX
MOV DH, 0
	;DISPLAY MONTH
MOV DX, 0
POP AX
MOV CX,0
MOV BX,10

DIVIDEM:DIV BX
PUSH DX
ADD CX,1
MOV DX, 0
CMP AX, 0
JNE DIVIDEM

DIVDISPM:POP DX
ADD DL,30h
MOV AH, 02h
INT 21H
LOOP DIVDISPM
MOV DL,'/'
MOV AH,02h
INT 21H
	;DISPLAY DAY
MOV DX, 0
POP AX
MOV CX,0
MOV BX,10

DIVIDED:DIV BX
PUSH DX
ADD CX,1
MOV DX,0
CMP AX,0
JNE DIVIDED

DIVDISPD:POP DX
ADD DL,30H
MOV AH,02H
INT 21H
LOOP DIVDISPD
MOV DL,'/'
MOV AH,02H
INT 21H
	;DISPLAY YEAR
MOV DX,0
POP AX
MOV CX,0
MOV BX,10
DIVIDEY:DIV BX
PUSH DX
ADD CX,1
MOV DX,0
CMP AX,0
JNE DIVIDEY

DIVDISPY:POP DX
ADD DL,30H
MOV AH,02H
INT 21H
LOOP DIVDISPY

MOV AL,0
MOV AH,4CH
INT 21H
TODAY ENDP
END TODAY

Leave a Reply

Your email address will not be published. Required fields are marked *

WhatsApp Icon Join For Job Alerts