Windows套接字asm:上下文堆栈为空

时间:2015-10-15 18:29:16

标签: assembly nasm winsock2

你好我在使用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
.
.
.

这仅适用于结构的第一行声明,并且每行继续

1 个答案:

答案 0 :(得分:0)

istruc需要结构名称:

istruc wsa_data_struct

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

BTW:.size需要类似resd 1的类型。