Go4Expert (http://www.go4expert.com/)
-   Assembly Language Programming (ALP) Forum (http://www.go4expert.com/forums/assembly-language-programming-forum/)
-   -   assembly language program (http://www.go4expert.com/forums/assembly-language-program-t23956/)

goonjrulz 22Nov2010 07:00

assembly language program
Suppose the time field of a file directory entry uses bits 0-4 for the seconds, bits 5-10 for the minutes, and bits 11-15 for the hours (24-hour clock). For example, the following binary value indicates a time of 02:16:07, in hh:mm:ss format:

00010 010000 00111
Write a procedure named ShowFileTime that receives a binary file time value in the AX
register and displays the time in hh:mm:ss format.
The following program is written to accomplish the task, but it is incomplete. The code under label L1 and L2 in ShowFiletimeProc needs to be completed.

INCLUDE Irvine32.inc
time WORD 0001001000000111b ; 02:16:07


main PROC
call Clrscr

mov        ax, time        ; AX = time in MS-DOS format call ShowFileTime

exit main ENDP

;-------------------------------------------------------- ShowFileTime PROC
; Receives a binary file time value in MS-DOS format
; and displays the time in hh:mm:ss format.
; Receives: AX = time in binary MS-DOS format
; Returns: nothing
push ebx push edx

and eax,0FFFFh        ; clear upper half of EAX mov bx,ax        ; BX = a copy of the file time shr ax,11        ; shift hour to the right
cmp ax,10        ; is the hour >= 10?
jae L1        ; yes: display it
call DisplayZero        ; no: display a leading zero

L1:        call WriteDec

........        ;        display        the        hour

call WriteDec       

static function sub ShowFileTime (dim binfv as integer)
copy cx, binfc
copy ax, result
shl ax, 4
copy ax, 2
mov bx, ax
interrupt 21h
return ax
end function

L3:        call WriteDec        ; display seconds call Crlf

pop edx pop ebx ret
ShowFileTime ENDP

;-------------------------------------------------------- DisplayZero PROC
; Displays a zero character
; Receives: nothing
; Returns: nothing
;-------------------------------------------------------- push eax

mov al,'0'        ; char to display call WriteChar

pop eax ret
DisplayZero ENDP

END main

xpi0t0s 22Nov2010 13:13

Re: assembly language program
Where are you stuck?

goonjrulz 23Nov2010 22:00

Re: assembly language program
i do not know how to for receiving a binary file time value in the AX
register and how to display the time in hh:mm:ss format.

xpi0t0s 24Nov2010 02:02

Re: assembly language program
Well, it's going to be very hardware dependent. Are you sure the person who wrote the above partial code REALLY gave you ABSOLUTELY NO clues how to get user input? That there's absolutely *nothing* in your course notes to date about this?

All times are GMT +5.5. The time now is 03:47.