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)

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
.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
.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
.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)

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
.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
.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
.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