程序中流浪'\ 222'

时间:2012-02-01 21:30:52

标签: c assembly

对C来说是新手,但是当我运行这个时出现以下错误:程序中的'st''222'

unsigned long *new_intel_stack(unsigned long *sp, lwpfun func, void *arg)
{
    unsigned long *ebp;  

    push(sp,arg); /* argument */
    push(sp,lwp_exit); /* for lwp return purposes */
    push(sp,func); /* function's return address */
    push(sp,0x1abcdef1); /* bogus "saved" base pointer */
    ebp=sp;   /* remember sp from this point for later */
    push(sp,0x6c6f7453); /* push initial eax, ebx, ecx, edx, esi and edi */
    push(sp,0x66206e65); 
    push(sp,0x206d6f72); 
    push(sp,0x746e6957);
    push(sp,0x32207265);
    push(sp,0x21363030);
    push(sp,ebp);  /* push initial edp */

    return sp;
}

2 个答案:

答案 0 :(得分:3)

该错误表示源文件中某处存在杂散的非ASCII字符。你在这里粘贴的很好。您可能需要在编辑器中使用“show whitespace”选项,或者在十六进制编辑器中查看该文件以查找杂散字节并将其删除。

也可能是你正在对你的对象做一些有趣的事情,编译器认为它们是源文件 - 你用什么命令来构建应用程序?

答案 1 :(得分:3)

此类错误的最常见原因是在Microsoft Word等环境中编写代码,该代码可自动更新以添加花哨的引号和花式撇号,然后将文件复制粘贴到源文件中。在十六进制编辑器(例如Frhed)中打开您的程序,并查找不在00-7F范围内的任何字节值。您也可以在命令行中调用输入和输出来调用编译器。