Windows socket asm:上下文堆栈为空

Windows socket asm: context stack is empty

您好,我在使用 NASM 编译我的 asm 代码时遇到了结构问题。

这是我的结构定义和声明:

struc wsa_data_struct
    .wVersion resw 1
    .wHighVersion resw 1
    .szDescription resb WSADESCRIPTION_LEN
    .szSystemStatus resb WSASYS_STATUS_LEN
    .iMaxSckets resw 1
    .ImaxUdpDg resw 1
    .lpVendorInfo resb 1
    .size
endstruc

wsa_dat:
    istruc
        at wsa_data_struct.wVersion, dw 0
        at wsa_data_struct.wHighVersion, dw 0
        at wsa_data_struct.szDescription, db 0
        at wsa_data_struct.szSystemStatus, db 0
        at wsa_data_struct.iMaxSckets, dw 0
        at wsa_data_struct.ImaxUdpDg, dw 0
        at wsa_data_struct.lpVendorInfo, db 0
    iend

当我尝试编译我的代码时弹出这个错误:

error: (at:1) `%$strucname': context stack is empty
error: (at:1) `%$strucstart': context stack is empty
error: (at:1) `%$strucname': context stack is empty
error: (at:1) `%$strucstart': context stack is empty
error: (at:1) `%$strucname': context stack is empty
error: (at:1) `%$strucstart': context stack is empty
.
.
.

这只是结构声明的第一行,每一行都如此

istruc需要结构的名称:

istruc wsa_data_struct

参见:http://www.nasm.us/doc/nasmdoc4.html#section-4.12.11

顺便说一句:.size 需要像 resd 1 这样的类型。