用MASM32按Time Protocol(RFC868)协议编写网络对时程序中的一些有用的函数代码

简介: 用MASM32按Time Protocol(RFC868)协议编写网络对时程序中的一些有用的函数代码

这几天在用MASM32按Time Protocol(RFC868)协议编写网络对时程序,现在基本完成了。将其中一些有用的函数代码整理了一下。

 我们需要将本地系统时间转换为UTC格式发送给时间服务器,相关转换代码如下:

BaseTimeLow equ 0D53E8000h
BaseTimeHigh equ 19DB1DEh
;:::::::::::::::::::::::::::::::::::::::::::::::::::
FileTime2DateStamp proc lpFileTime: dword
;:::::::::::::::::::::::::::::::::::::::::::::::::::
 mov ecx, lpFileTime
 mov eax, [ecx]
 mov edx, [ecx+4]
 sub eax, BaseTimeLow
 sbb edx, BaseTimeHigh

 mov ecx, 10000000
 div ecx

 RET
FileTime2DateStamp endp


;::::::::::::::::::::::::::::::::::::::::
GetLocalTimeStamp proc
;::::::::::::::::::::::::::::::::::::::::
    local stSystemTime: SYSTEMTIME
    local stFileTime: FILETIME

    invoke GetSystemTime, addr stSystemTime
    invoke SystemTimeToFileTime, addr stSystemTime, addr stFileTime
    invoke FileTime2DateStamp, addr stFileTime

    ret
GetLocalTimeStamp endp

时间服务器返回的是从1900年1月1日午夜到现在的秒数,将其转换为本地时间的相关代码如下:

;::::::::::::::::::::::::::::::::::::::::::::::::::::
_MemCpy proc  lpD, lpS, dwSize
;::::::::::::::::::::::::::::::::::::::::::::::::::::
    mov     esi, lpS
    mov     edi, lpD
    mov     ecx, dwSize
    rep     movsb

    ret
_MemCpy endp


g_szFmtDateTime db "%d-%d-%d %d:%d:%d", 0
;::::::::::::::::::::::::::::::::::::::::::::::::::::
printDateTime proc dwTimeStamp: dword
;::::::::::::::::::::::::::::::::::::::::::::::::::::
    local buf[30]: byte
    local stSysTime: SYSTEMTIME
    local stFileTime: FILETIME
    local stLocFileTime: FILETIME
    local li: LARGE_INTEGER

    
    invoke RtlZeroMemory, addr stSysTime, sizeof stSysTime
    
    mov stSysTime.wYear, 1900
    mov stSysTime.wMonth, 1
    mov stSysTime.wDay, 1
    
    invoke SystemTimeToFileTime, addr stSysTime, addr stFileTime
    invoke _MemCpy, addr li, addr stFileTime, sizeof stFileTime

    mov eax,  dwTimeStamp
    mov  edx, 10000000
    mul  edx; edx=10000000

    lea edi, li.QuadPart
    add [edi], eax
    adc [edi+4], edx

    invoke _MemCpy, addr  stFileTime, addr li, sizeof li
    invoke FileTimeToLocalFileTime, addr stFileTime, addr stLocFileTime

    lea edi, stSysTime;push edi
    invoke FileTimeToSystemTime, addr stLocFileTime, edi    ;edi=addr stSysTime
    ;pop edi    movzx eax, (SYSTEMTIME ptr [edi]).wYear
    movzx ebx, (SYSTEMTIME ptr [edi]).wMonth
    movzx ecx, (SYSTEMTIME ptr [edi]).wDay
    movzx edx, (SYSTEMTIME ptr [edi]).wHour
    movzx esi, (SYSTEMTIME ptr [edi]).wMinute
    movzx edi, (SYSTEMTIME ptr [edi]).wSecond

    invoke wsprintf, addr buf, addr g_szFmtDateTime, eax, ebx, ecx,edx, esi, edi
    invoke StdOut, addr buf

    ret
printDateTime endp
相关文章
|
1月前
|
负载均衡 网络协议 算法
|
25天前
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
53 11
|
23天前
|
网络协议 物联网 数据处理
C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势
本文探讨了C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势。文章详细讲解了使用C语言实现网络通信程序的基本步骤,包括TCP和UDP通信程序的实现,并讨论了关键技术、优化方法及未来发展趋势,旨在帮助读者掌握C语言在网络通信中的应用技巧。
35 2
|
24天前
|
监控 网络协议 网络性能优化
网络通信的核心选择:TCP与UDP协议深度解析
在网络通信领域,TCP(传输控制协议)和UDP(用户数据报协议)是两种基础且截然不同的传输层协议。它们各自的特点和适用场景对于网络工程师和开发者来说至关重要。本文将深入探讨TCP和UDP的核心区别,并分析它们在实际应用中的选择依据。
52 3
|
1月前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
86 3
|
1月前
|
网络虚拟化
生成树协议(STP)及其演进版本RSTP和MSTP,旨在解决网络中的环路问题,提高网络的可靠性和稳定性
生成树协议(STP)及其演进版本RSTP和MSTP,旨在解决网络中的环路问题,提高网络的可靠性和稳定性。本文介绍了这三种协议的原理、特点及区别,并提供了思科和华为设备的命令示例,帮助读者更好地理解和应用这些协议。
52 4
|
1月前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
51 13
|
2月前
|
机器学习/深度学习 网络架构 计算机视觉
目标检测笔记(一):不同模型的网络架构介绍和代码
这篇文章介绍了ShuffleNetV2网络架构及其代码实现,包括模型结构、代码细节和不同版本的模型。ShuffleNetV2是一个高效的卷积神经网络,适用于深度学习中的目标检测任务。
97 1
目标检测笔记(一):不同模型的网络架构介绍和代码
|
1月前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
1月前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
下一篇
DataWorks