使用MASM读取块中的文件

时间:2013-12-06 23:37:27

标签: file io masm

我想用MASM的块读取文件。 Win32文档说我必须添加OVERLAPPED结构,但我不知道如何在内存中构建该结构。

保留结构元素的相应大小是否有效?

union和struct的大小是什么?

你能建议我采用另一种方法吗?

非常感谢你的帮助

1 个答案:

答案 0 :(得分:0)

Windows API函数使用OVERLAPPED结构来实现异步函数,它在调用之前立即返回,以允许其他函数访问OVERLAPPED结构。 UNION和STRUCT指令没有大小,因为它只是汇编程序(或在大多数情况下,程序员)指示某个数据块是UNION或结构。在MASM中指定UNION时,可以使用与UNION指令关联的变量将块的各种元素(db,dw,dd等)表示为单个元素(但是,在实践中仅为真,因为在汇编中,您可以通过简单地访问数据块的各个元素来绕过它。另一方面,STRUCT为每个元素都有一个单独的内存位置,它们都可以一次使用。

最后,因为MASM中不存在OVERLAPPED运算符,我建议使用STRUCT:

mystruct    struct
db          byteelement
dd          doublewordelement
mystruct    ends

当然,您应该根据需要更改此代码以匹配您的功能的OVERLAPPED结构。

您可以在此处找到有关MASM指令的更多信息:http://msdn.microsoft.com/en-us/library/8t163bt0.aspx

希望这有帮助。