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
.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)
.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