用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
相关文章
|
17天前
|
机器学习/深度学习 网络架构 计算机视觉
目标检测笔记(一):不同模型的网络架构介绍和代码
这篇文章介绍了ShuffleNetV2网络架构及其代码实现,包括模型结构、代码细节和不同版本的模型。ShuffleNetV2是一个高效的卷积神经网络,适用于深度学习中的目标检测任务。
55 1
目标检测笔记(一):不同模型的网络架构介绍和代码
|
24天前
|
安全 网络协议 算法
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
122 4
HTTPS网络通信协议揭秘:WEB网站安全的关键技术
|
19天前
|
机器学习/深度学习 编解码
深度学习笔记(三):神经网络之九种激活函数Sigmoid、tanh、ReLU、ReLU6、Leaky Relu、ELU、Swish、Mish、Softmax详解
本文介绍了九种常用的神经网络激活函数:Sigmoid、tanh、ReLU、ReLU6、Leaky ReLU、ELU、Swish、Mish和Softmax,包括它们的定义、图像、优缺点以及在深度学习中的应用和代码实现。
96 0
深度学习笔记(三):神经网络之九种激活函数Sigmoid、tanh、ReLU、ReLU6、Leaky Relu、ELU、Swish、Mish、Softmax详解
|
20天前
|
网络协议 网络虚拟化 网络架构
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(上)
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(上)
51 1
|
2月前
|
安全 C#
某网络硬盘网站被植入传播Trojan.DL.Inject.xz等的代码
某网络硬盘网站被植入传播Trojan.DL.Inject.xz等的代码
|
20天前
|
网络协议 数据安全/隐私保护 网络虚拟化
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(下)
【网络实验】/主机/路由器/交换机/网关/路由协议/RIP+OSPF/DHCP(下)
38 0
|
24天前
|
机器学习/深度学习 数据可视化 算法
激活函数与神经网络------带你迅速了解sigmoid,tanh,ReLU等激活函数!!!
激活函数与神经网络------带你迅速了解sigmoid,tanh,ReLU等激活函数!!!
|
25天前
|
安全 网络协议 IDE
使用Python编写网络扫描程序
使用Python编写网络扫描程序
30 0
|
4天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第20天】在信息技术飞速发展的今天,网络安全和信息安全问题日益突出。本文将围绕网络安全漏洞、加密技术和安全意识等方面进行深入探讨,旨在提高读者对网络安全的认识和重视程度。文章首先介绍了网络安全漏洞的概念、分类和成因,然后详细阐述了加密技术的基本原理和应用,最后强调了提高个人和组织安全意识的重要性。通过本文的学习,读者将能够更好地理解网络安全的重要性,掌握一些实用的防护措施,并在日常生活中提高自己的安全意识。
46 10
|
1天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第23天】在数字化时代,网络安全和信息安全已经成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,帮助读者更好地了解网络安全和信息安全的基本知识。通过本文的学习,您将能够更好地保护自己的个人信息和数据安全。