Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

to DOS_ file_time (Chapter 7, Supplied) Suppose the time field of a file directo

ID: 3591882 • Letter: T

Question

to DOS_ file_time (Chapter 7, Supplied) Suppose the time field of a file directo hours (24-hour clock). Write a procedur displays the time in hh:mm:ss format. hh:mm:ss format: ry entry uses bits 0-4 for 2-second increments, bits 5-10 for minutes, and bits 11-15 for e named ShowFileTime that receives a binary file time value in the AX register and t. For example, the binary 0001 0010 0000 0111 indicates a time of 02:16:14, in binary 0 00010 010000 0011 For simplicity, we want to input 4-digit hexadecimal and show its binary to verify. For this, you can call ReadHex and WriteBinB. Then you can call your ShowFileTime to display the file time. You may call WriteDec, WriteChar, and consider prefixed zeros. Run your program; the screen will be like this C:Teachingcsc1241KipIrvineSixthEditionProg_Ex SMch07Debug project Please enter 16-bit hexadecimal (4-digit, e.g., 1207): A103 Your equivalent binary is 1010 0001 0000 0011 Your Dos file time is 20:08:06 c:TeachingcscI241KipIrvinelSixthEditionProg_Ex_ SMch07Debug project Please enter 16-bit hexadecimal (4-digit, e.g., 1207): 1207 Your equivalent binary is 0001 0010 0000 0111 Your DOS file time is 02:16:14 Any reusable helper procedure is preferred, such as displaying a leading zero character if the value of hours, minutes, or seconds less than 10, else displaying an original two digits

Explanation / Answer

INCLUDE Irvine32.inc

.data

Time WORD 1010100001111b ; it will be displayed as 10:16:15

.code

main PROC

call Clrscr

mov ax, Time

call ShowFileTime

exit

main ENDP

ShowFileTime PROC

push ebx

push edx

mov ax,Time

and eax,00FFh

and ebx,00FFh

and edx,00FFh

call WriteDec

call DumpRegs

; ---------------------------------------------

mov al,':' ; display a ":"

call WriteChar

and eax,00FFh

and ebx,00FFh

and edx,00FFh

call WriteDec

call DumpRegs

; ---------------------------------------------

mov al, ':' ; display a ":"

call WriteChar

and eax,00FFh

and ebx,00FFh

and edx,00FFh

call WriteDec

call DumpRegs

call Crlf

pop edx

pop ebx

ret

ShowFileTime ENDP

END main