本程序中使用了SYSTEMTIME模块以及控制坐标的模块,详细地实现可以参照Irvine.inc 以及 SmallWin.inc源代码。
;结构
include irvine32.inc
.data
sysTime SYSTEMTIME <>
XYPos COORD <10,5>
consoleHandle DWORD ?
consoleStr BYTE ":",0
.code
main PROC
;获取Win32控制台的标准输出句柄
invoke GetStdHandle,STD_OUTPUT_HANDLE
mov consoleHandle,eax
;设置光标位置并且获取系统时间
invoke SetConsoleCursorPosition,consoleHandle,XYPos
invoke GetLocalTime,addr sysTime
;显示系统时间(小时:分钟:秒)
movzx eax,sysTime.wHour ;引用传值 规则是使用movzx来进行传递
call WriteDec
mov edx,OFFSET consoleStr
call WriteString
movzx eax,sysTime.wMinute ;分钟
call WriteDec
call WriteString
movzx eax,sysTime.wSecond ;秒
call WriteDec
call Crlf
call WaitMsg
exit
main ENDP
END main