首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#到MASM困难的FILETIME

C#到MASM困难的FILETIME
EN

Stack Overflow用户
提问于 2012-01-23 12:05:35
回答 1查看 441关注 0票数 1

我有两行C#,我想转换成程序集。我试着遵循这个答案(int64),但没有得到令人满意的结果。

这是C#的两行

代码语言:javascript
复制
System.DateTime dt = System.DateTime.Now;
long x = dt.ToFileTime();

从另一个答案(链接在上面),我得出结论,这应该是相同的汇编代码。

代码语言:javascript
复制
local fTime :FILETIME
local ticks :DWORD

invoke GetLocalTime,addr time
invoke SystemTimeToFileTime,addr time,addr fTime

xor eax,eax
xor ebx,ebx

mov eax,fTime.dwLowDateTime
mov ebx,fTime.dwHighDateTime
sal ebx,32
or ebx,eax
mov ticks,ebx

C#的输出是1221229007

我的asm输出是2882329052

C#和程序集是在几秒钟内彼此运行的,所以差别不应该有那么大。应该这样吗?

我哪里错了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-23 15:20:47

代码语言:javascript
复制
invoke GetLocalTime,addr time
invoke SystemTimeToFileTime,addr time,addr fTime

xor eax,eax
xor ebx,ebx

mov eax,fTime.dwLowDateTime
mov ebx,fTime.dwHighDateTime

sal ebx,32 ;shift HighDateTime left 32 bits
add ebx,eax ;add HighDateTime and LowDateTime together

mov edx,ebx ;edx has the ticks?

这似乎是可行的,或者应该是一个附加项。

找到它了这里

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8971315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档