Winapi 如何将“rterrmsgs”翻译成合法的nasm风格的asm代码?

Winapi 如何将“rterrmsgs”翻译成合法的nasm风格的asm代码?,winapi,assembly,nasm,ida,Winapi,Assembly,Nasm,Ida,我使用IDA Pro在Windows 7 32位上反汇编SPEC 2006二进制文件 它生成一个声明如下的变量: rterrs rterrmsgs <2, aR6002FloatingP> rterrmsgs <8, aR6008NotEnough> terrmsgs <9, aR6009NotEnough> rterrmsgs <0Ah, aR6010AbortHasB> rterrmsgs <10h, aR6016No

我使用IDA Pro在Windows 7 32位上反汇编SPEC 2006二进制文件

它生成一个声明如下的变量:

rterrs rterrmsgs <2,   aR6002FloatingP>
rterrmsgs <8,   aR6008NotEnough>
terrmsgs <9,   aR6009NotEnough>
rterrmsgs <0Ah,   aR6010AbortHasB>
rterrmsgs <10h,   aR6016NotEnough>
rterrmsgs <11h,   aR6017Unexpecte>
rterrmsgs <12h,   aR6018Unexpecte>
所以基本上像

rterrmsgs <11h,   aR6017Unexpecte>
不能使用nasm/masm直接组装成二进制, 我认为这个东西应该像数组一样工作,但基本上2,8,9是什么

rterrs rterrmsgs <2,   aR6002FloatingP>
rterrmsgs <8,   aR6008NotEnough>
terrmsgs <9,   aR6009NotEnough>
所以我的问题是,如何调整上面的指令,使其以nasm语法重新组装


谢谢大家!

这些只是CRT结构的实例:

/* struct used to lookup and access runtime error messages */

struct rterrmsgs {
    int rterrno;        /* error number */
    char *rterrtxt;     /* text of error message */
};
例如,见:

在您的示例中,如果您采取以下措施:

rterrmsgs <10h,   aR6016NotEnough>
其中,_RT_THREAD为16 0x10,_RT_THREAD_TXT的定义如下:

#define _RT_THREAD_TXT     "R6016" EOL "- not enough space for thread data" EOL
有关各种消息,请参阅

希望这有助于:

    /* 16 */
    { _RT_THREAD, _RT_THREAD_TXT },
#define _RT_THREAD_TXT     "R6016" EOL "- not enough space for thread data" EOL