亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? nasm.c

?? 32位匯編編譯器nasm源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
    p = args;
    if (*p && *p != '-')
        separator = *p++;
    arg = NULL;
    while (*p) {
        q = p;
        while (*p && *p != separator)
            p++;
        while (*p == separator)
            *p++ = '\0';
        prevarg = arg;
        arg = q;
        if (process_arg(prevarg, arg))
            arg = NULL;
    }
    if (arg)
        process_arg(arg, NULL);
}

static void parse_cmdline(int argc, char **argv)
{
    FILE *rfile;
    char *envreal, *envcopy = NULL, *p, *arg;

    *inname = *outname = *listname = '\0';

    /*
     * First, process the NASMENV environment variable.
     */
    envreal = getenv("NASMENV");
    arg = NULL;
    if (envreal) {
        envcopy = nasm_strdup(envreal);
        process_args(envcopy);
        nasm_free(envcopy);
    }

    /*
     * Now process the actual command line.
     */
    while (--argc) {
        int i;
        argv++;
        if (argv[0][0] == '@') {
            /* We have a response file, so process this as a set of
             * arguments like the environment variable. This allows us
             * to have multiple arguments on a single line, which is
             * different to the -@resp file processing below for regular
             * NASM.
             */
            char *str = malloc(2048);
            FILE *f = fopen(&argv[0][1], "r");
            if (!str) {
                printf("out of memory");
                exit(-1);
            }
            if (f) {
                while (fgets(str, 2048, f)) {
                    process_args(str);
                }
                fclose(f);
            }
            free(str);
            argc--;
            argv++;
        }
        if (!stopoptions && argv[0][0] == '-' && argv[0][1] == '@') {
            if ((p = get_param(argv[0], argc > 1 ? argv[1] : NULL, &i))) {
                if ((rfile = fopen(p, "r"))) {
                    process_respfile(rfile);
                    fclose(rfile);
                } else
                    report_error(ERR_NONFATAL | ERR_NOFILE | ERR_USAGE,
                                 "unable to open response file `%s'", p);
            }
        } else
            i = process_arg(argv[0], argc > 1 ? argv[1] : NULL);
        argv += i, argc -= i;
    }

    if (!*inname)
        report_error(ERR_NONFATAL | ERR_NOFILE | ERR_USAGE,
                     "no input file specified");
}

static void assemble_file(char *fname)
{
    char *directive, *value, *p, *q, *special, *line, debugid[80];
    insn output_ins;
    int i, rn_error, validid;
    long seg, offs;
    struct tokenval tokval;
    expr *e;
    int pass, pass_max;
    int pass_cnt = 0;           /* count actual passes */

    if (cmd_sb == 32 && cmd_cpu < IF_386)
        report_error(ERR_FATAL, "command line: "
                     "32-bit segment size requires a higher cpu");

    pass_max = (optimizing > 0 ? optimizing : 0) + 2;   /* passes 1, optimizing, then 2 */
    pass0 = !(optimizing > 0);  /* start at 1 if not optimizing */
    for (pass = 1; pass <= pass_max && pass0 <= 2; pass++) {
        int pass1, pass2;
        ldfunc def_label;

        pass1 = pass < pass_max ? 1 : 2;        /* seq is 1, 1, 1,..., 1, 2 */
        pass2 = pass > 1 ? 2 : 1;       /* seq is 1, 2, 2,..., 2, 2 */
        /*      pass0                            seq is 0, 0, 0,..., 1, 2 */

        def_label = pass > 1 ? redefine_label : define_label;

        sb = cmd_sb;            /* set 'bits' to command line default */
        cpu = cmd_cpu;
        if (pass0 == 2) {
            if (*listname)
                nasmlist.init(listname, report_error);
        }
        in_abs_seg = FALSE;
        global_offset_changed = FALSE;  /* set by redefine_label */
        location.segment = ofmt->section(NULL, pass2, &sb);
        if (pass > 1) {
            saa_rewind(forwrefs);
            forwref = saa_rstruct(forwrefs);
            raa_free(offsets);
            offsets = raa_init();
        }
        preproc->reset(fname, pass1, report_error, evaluate, &nasmlist);
        globallineno = 0;
        if (pass == 1)
            location.known = TRUE;
        location.offset = offs = GET_CURR_OFFS;

        while ((line = preproc->getline())) {
            globallineno++;

            /* here we parse our directives; this is not handled by the 'real'
             * parser. */
            directive = line;
            if ((i = getkw(&directive, &value))) {
                switch (i) {
                case 1:        /* [SEGMENT n] */
                    seg = ofmt->section(value, pass2, &sb);
                    if (seg == NO_SEG) {
                        report_error(pass1 == 1 ? ERR_NONFATAL : ERR_PANIC,
                                     "segment name `%s' not recognised",
                                     value);
                    } else {
                        in_abs_seg = FALSE;
                        location.segment = seg;
                    }
                    break;
                case 2:        /* [EXTERN label:special] */
                    if (*value == '$')
                        value++;        /* skip initial $ if present */
                    if (pass0 == 2) {
                        q = value;
                        while (*q && *q != ':')
                            q++;
                        if (*q == ':') {
                            *q++ = '\0';
                            ofmt->symdef(value, 0L, 0L, 3, q);
                        }
                    } else if (pass == 1) {     /* pass == 1 */
                        q = value;
                        validid = TRUE;
                        if (!isidstart(*q))
                            validid = FALSE;
                        while (*q && *q != ':') {
                            if (!isidchar(*q))
                                validid = FALSE;
                            q++;
                        }
                        if (!validid) {
                            report_error(ERR_NONFATAL,
                                         "identifier expected after EXTERN");
                            break;
                        }
                        if (*q == ':') {
                            *q++ = '\0';
                            special = q;
                        } else
                            special = NULL;
                        if (!is_extern(value)) {        /* allow re-EXTERN to be ignored */
                            int temp = pass0;
                            pass0 = 1;  /* fake pass 1 in labels.c */
                            declare_as_global(value, special,
                                              report_error);
                            define_label(value, seg_alloc(), 0L, NULL,
                                         FALSE, TRUE, ofmt, report_error);
                            pass0 = temp;
                        }
                    }           /* else  pass0 == 1 */
                    break;
                case 3:        /* [BITS bits] */
                    sb = get_bits(value);
                    break;
                case 4:        /* [GLOBAL symbol:special] */
                    if (*value == '$')
                        value++;        /* skip initial $ if present */
                    if (pass0 == 2) {   /* pass 2 */
                        q = value;
                        while (*q && *q != ':')
                            q++;
                        if (*q == ':') {
                            *q++ = '\0';
                            ofmt->symdef(value, 0L, 0L, 3, q);
                        }
                    } else if (pass2 == 1) {    /* pass == 1 */
                        q = value;
                        validid = TRUE;
                        if (!isidstart(*q))
                            validid = FALSE;
                        while (*q && *q != ':') {
                            if (!isidchar(*q))
                                validid = FALSE;
                            q++;
                        }
                        if (!validid) {
                            report_error(ERR_NONFATAL,
                                         "identifier expected after GLOBAL");
                            break;
                        }
                        if (*q == ':') {
                            *q++ = '\0';
                            special = q;
                        } else
                            special = NULL;
                        declare_as_global(value, special, report_error);
                    }           /* pass == 1 */
                    break;
                case 5:        /* [COMMON symbol size:special] */
                    if (*value == '$')
                        value++;        /* skip initial $ if present */
                    if (pass0 == 1) {
                        p = value;
                        validid = TRUE;
                        if (!isidstart(*p))
                            validid = FALSE;
                        while (*p && !isspace(*p)) {
                            if (!isidchar(*p))
                                validid = FALSE;
                            p++;
                        }
                        if (!validid) {
                            report_error(ERR_NONFATAL,
                                         "identifier expected after COMMON");
                            break;
                        }
                        if (*p) {
                            long size;

                            while (*p && isspace(*p))
                                *p++ = '\0';
                            q = p;
                            while (*q && *q != ':')
                                q++;
                            if (*q == ':') {
                                *q++ = '\0';
                                special = q;
                            } else
                                special = NULL;
                            size = readnum(p, &rn_error);
                            if (rn_error)
                                report_error(ERR_NONFATAL,
                                             "invalid size specified"
                                             " in COMMON declaration");
                            else
                                define_common(value, seg_alloc(), size,
                                              special, ofmt, report_error);
                        } else
                            report_error(ERR_NONFATAL,
                                         "no size specified in"
                                         " COMMON declaration");
                    } else if (pass0 == 2) {    /* pass == 2 */
                        q = value;
                        while (*q && *q != ':') {
                            if (isspace(*q))
                                *q = '\0';
                            q++;
                        }
                        if (*q == ':') {
                            *q++ = '\0';
                            ofmt->symdef(value, 0L, 0L, 3, q);
                        }
                    }
                    break;
                case 6:        /* [ABSOLUTE address] */
                    stdscan_reset();
                    stdscan_bufptr = value;
                    tokval.t_type = TOKEN_INVALID;
                    e = evaluate(stdscan, NULL, &tokval, NULL, pass2,
                                 report_error, NULL);
                    if (e) {
                        if (!is_reloc(e))
                            report_error(pass0 ==
                                         1 ? ERR_NONFATAL : ERR_PANIC,
                                         "cannot use non-relocatable expression as "
                                         "ABSOLUTE address");
                        else {
                            abs_seg = reloc_seg(e);
                            abs_offset = reloc_value(e);
                        }
                    } else if (pass == 1)
                        abs_offset = 0x100;     /* don't go near zero in case of / */
                    else
                        report_error(ERR_PANIC, "invalid ABSOLUTE address "
                                     "in pass two");
                    in_abs_seg = TRUE;
                    location.segment = NO_SEG;
                    break;
                case 7:        /* DEBUG       */
                    p = value;
                    q = debugid;
                    validid = TRUE;
                    if (!isidstart(*p))
                        validid = FALSE;
                    while (*p && !isspace(*p)) {
                        if (!isidchar(*p))
                            validid = FALSE;
                        *q++ = *p++;
                    }
                    *q++ = 0;
                    if (!validid) {
                        report_error(pass == 1 ? ERR_NONFATAL : ERR_PANIC,
                                     "identifier expected after DEBUG");
                        break;
                    }
                    while (*p && isspace(*p))
                        p++;
                    if (pass == pass_max)
                        ofmt->current_dfmt->debug_directive(debugid, p);
                    break;
                case 8:        /* [WARNING {+|-}warn-name] */
                    if (pass1 == 1) {
                        while (*value && isspace(*value))
                            value++;

                        if (*value == '+' || *value == '-') {
                            validid = (*value == '-') ? TRUE : FALSE;
                            value++;
                        } else
                            validid = FALSE;

                        for (i = 1; i <= ERR_WARN_MAX; i++)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久色婷婷小香蕉久久| 欧美性一级生活| 欧洲在线/亚洲| 精品免费视频.| 亚洲欧美国产三级| 精品一区二区免费视频| 在线观看日韩av先锋影音电影院| 欧美成人一区二区三区| 亚洲在线一区二区三区| 国产99一区视频免费| 日韩一区二区三区视频在线观看| 亚洲视频小说图片| 国产成都精品91一区二区三| 欧美一区二区不卡视频| 亚洲第一激情av| 色天使久久综合网天天| 中文字幕字幕中文在线中不卡视频| 精东粉嫩av免费一区二区三区| 欧美日韩在线不卡| 中文字幕一区二区三中文字幕| 国内精品国产三级国产a久久 | 日韩黄色免费电影| 91在线观看视频| 国产精品久久看| 国产不卡视频在线观看| 精品久久五月天| 久久99国产精品免费网站| 日韩一区二区精品在线观看| 水蜜桃久久夜色精品一区的特点 | 亚洲女同一区二区| av不卡在线播放| 国产精品白丝在线| k8久久久一区二区三区| 国产精品久久久一区麻豆最新章节| 国产99精品视频| 日本一区二区三区dvd视频在线| 久久国产三级精品| 欧美mv日韩mv国产网站| 国内精品国产成人| 久久久99久久| 成人一级片在线观看| 欧美国产日韩a欧美在线观看| 国产精品性做久久久久久| 久久综合九色综合欧美就去吻| 久久精品二区亚洲w码| 久久婷婷久久一区二区三区| 国产传媒久久文化传媒| 中文字幕一区不卡| 91精品1区2区| 日韩黄色免费电影| 久久人人爽爽爽人久久久| 国产成a人亚洲| 亚洲六月丁香色婷婷综合久久| 欧美丝袜自拍制服另类| 日韩电影免费在线看| 精品剧情v国产在线观看在线| 国产成人激情av| 一区二区三区色| 日韩欧美在线一区二区三区| 国产精品一区二区在线观看不卡 | 91福利在线看| 久久国产综合精品| 国产精品国产a| 欧美日韩精品专区| 国产一区二区调教| 亚洲久本草在线中文字幕| 这里只有精品99re| av在线不卡观看免费观看| 图片区小说区区亚洲影院| 久久久久国产免费免费 | 99视频精品在线| 午夜欧美2019年伦理| 久久精品人人做人人爽97| 欧美伊人久久久久久午夜久久久久| 麻豆国产欧美一区二区三区| 综合久久一区二区三区| 日韩欧美你懂的| 一本到不卡精品视频在线观看| 麻豆91小视频| 亚洲综合色视频| 国产女同性恋一区二区| 欧美一区二区视频在线观看2022| 国产jizzjizz一区二区| 毛片基地黄久久久久久天堂| 亚洲天堂成人网| 久久久噜噜噜久久中文字幕色伊伊| 色网站国产精品| 国产大陆a不卡| 美女视频一区在线观看| 亚洲主播在线播放| 国产精品乱码人人做人人爱| 日韩欧美国产精品一区| 日本国产一区二区| 成人激情av网| 国产美女精品在线| 免费精品视频最新在线| 亚洲成人av电影| 樱花影视一区二区| 中文字幕一区二区三区四区| 2023国产精品视频| 日韩欧美国产一区二区在线播放| 日本高清成人免费播放| 91丨九色porny丨蝌蚪| 国产乱人伦精品一区二区在线观看| 亚洲成a天堂v人片| 亚洲一区二区视频在线| 亚洲精品成人天堂一二三| 国产精品色眯眯| 国产日产亚洲精品系列| 国产亚洲婷婷免费| 国产偷国产偷精品高清尤物| 精品国精品国产尤物美女| 欧美一区二区三区视频| 欧美男人的天堂一二区| 欧美精品777| 欧美高清hd18日本| 91精品欧美福利在线观看 | 欧美在线视频日韩| 色先锋aa成人| 欧美色精品天天在线观看视频| 在线观看视频91| 欧美日韩一区二区三区高清 | 色哟哟精品一区| 色av一区二区| 在线观看www91| 欧美日本一道本在线视频| 91精品国产综合久久国产大片| 欧美日韩一级黄| 日韩欧美一级在线播放| 国产欧美一区在线| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲摸摸操操av| 亚洲国产精品久久一线不卡| 亚洲国产美女搞黄色| 天天操天天干天天综合网| 秋霞午夜av一区二区三区| 国产综合一区二区| 成人免费毛片嘿嘿连载视频| 一本大道av伊人久久综合| 欧美日韩一区 二区 三区 久久精品| 欧美日韩精品一区二区| 欧美精品一区二区精品网| 国产女人aaa级久久久级| 亚洲午夜日本在线观看| 美女一区二区三区在线观看| 国产成人精品aa毛片| 欧美中文字幕一区| 久久你懂得1024| 一区二区日韩av| 国产一区二区三区四| 99久久免费视频.com| 欧美电影一区二区| 国产精品美女久久福利网站| 一级特黄大欧美久久久| 精品亚洲国产成人av制服丝袜| a美女胸又www黄视频久久| 欧美一区二区二区| 亚洲视频一区在线| 韩日精品视频一区| 欧美亚洲国产一区二区三区va| 欧美videos中文字幕| 亚洲制服丝袜av| 国产成人av电影在线观看| 欧美日韩国产美女| 中文成人综合网| 免费一区二区视频| 色哟哟精品一区| 欧美国产在线观看| 另类小说一区二区三区| 在线观看日韩精品| 国产精品热久久久久夜色精品三区| 蜜桃视频在线观看一区| 在线观看日韩电影| 18成人在线视频| 国产毛片精品视频| 欧美大片在线观看一区二区| 亚洲最大的成人av| 波多野结衣中文字幕一区二区三区| 欧美一区二区视频网站| 一区二区三区欧美| 成人午夜免费电影| 久久精品人人爽人人爽| 美国毛片一区二区| 91麻豆精品国产91久久久使用方法 | 毛片av一区二区| 51精品秘密在线观看| 一区二区三区中文在线观看| 国产成人免费视频精品含羞草妖精 | 欧美亚洲综合久久| 有码一区二区三区| 色婷婷久久99综合精品jk白丝| 中文字幕免费一区| 成人一区二区在线观看| 国产欧美日韩三级| 国产成人av自拍| 国产精品五月天| 97久久超碰精品国产| 亚洲欧美偷拍另类a∨色屁股| 不卡一区二区三区四区| 国产精品久线观看视频|