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

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

?? nasm.c

?? 32位匯編編譯器nasm源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
                            if (!nasm_stricmp(value, suppressed_names[i]))
                                break;
                        if (i <= ERR_WARN_MAX)
                            suppressed[i] = validid;
                        else
                            report_error(ERR_NONFATAL,
                                         "invalid warning id in WARNING directive");
                    }
                    break;
                case 9:        /* cpu */
                    cpu = get_cpu(value);
                    break;
                case 10:       /* fbk 9/2/00 *//* [LIST {+|-}] */
                    while (*value && isspace(*value))
                        value++;

                    if (*value == '+') {
                        user_nolist = 0;
                    } else {
                        if (*value == '-') {
                            user_nolist = 1;
                        } else {
                            report_error(ERR_NONFATAL,
                                         "invalid parameter to \"list\" directive");
                        }
                    }
                    break;
                default:
                    if (!ofmt->directive(directive, value, pass2))
                        report_error(pass1 == 1 ? ERR_NONFATAL : ERR_PANIC,
                                     "unrecognised directive [%s]",
                                     directive);
                }
            } else {            /* it isn't a directive */

                parse_line(pass1, line, &output_ins,
                           report_error, evaluate, def_label);

                if (!(optimizing > 0) && pass == 2) {
                    if (forwref != NULL && globallineno == forwref->lineno) {
                        output_ins.forw_ref = TRUE;
                        do {
                            output_ins.oprs[forwref->operand].opflags |=
                                OPFLAG_FORWARD;
                            forwref = saa_rstruct(forwrefs);
                        } while (forwref != NULL
                                 && forwref->lineno == globallineno);
                    } else
                        output_ins.forw_ref = FALSE;
                }

                if (!(optimizing > 0) && output_ins.forw_ref) {
                    if (pass == 1) {
                        for (i = 0; i < output_ins.operands; i++) {
                            if (output_ins.oprs[i].
                                opflags & OPFLAG_FORWARD) {
                                struct forwrefinfo *fwinf =
                                    (struct forwrefinfo *)
                                    saa_wstruct(forwrefs);
                                fwinf->lineno = globallineno;
                                fwinf->operand = i;
                            }
                        }
                    } else {    /* pass == 2 */
                        /*
                         * Hack to prevent phase error in the code
                         *   rol ax,x
                         *   x equ 1
                         *
                         * If the second operand is a forward reference,
                         * the UNITY property of the number 1 in that
                         * operand is cancelled. Otherwise the above
                         * sequence will cause a phase error.
                         *
                         * This hack means that the above code will
                         * generate 286+ code.
                         *
                         * The forward reference will mean that the
                         * operand will not have the UNITY property on
                         * the first pass, so the pass behaviours will
                         * be consistent.
                         */

                        if (output_ins.operands >= 2 &&
                            (output_ins.oprs[1].opflags & OPFLAG_FORWARD))
                        {
                            output_ins.oprs[1].type &=
                                ~(ONENESS | BYTENESS);
                        }

                    }           /* pass == 2 */

                }

                /*  forw_ref */
                if (output_ins.opcode == I_EQU) {
                    if (pass1 == 1) {
                        /*
                         * Special `..' EQUs get processed in pass two,
                         * except `..@' macro-processor EQUs which are done
                         * in the normal place.
                         */
                        if (!output_ins.label)
                            report_error(ERR_NONFATAL,
                                         "EQU not preceded by label");

                        else if (output_ins.label[0] != '.' ||
                                 output_ins.label[1] != '.' ||
                                 output_ins.label[2] == '@') {
                            if (output_ins.operands == 1 &&
                                (output_ins.oprs[0].type & IMMEDIATE) &&
                                output_ins.oprs[0].wrt == NO_SEG) {
                                int isext =
                                    output_ins.oprs[0].
                                    opflags & OPFLAG_EXTERN;
                                def_label(output_ins.label,
                                          output_ins.oprs[0].segment,
                                          output_ins.oprs[0].offset, NULL,
                                          FALSE, isext, ofmt,
                                          report_error);
                            } else if (output_ins.operands == 2
                                       && (output_ins.oprs[0].
                                           type & IMMEDIATE)
                                       && (output_ins.oprs[0].type & COLON)
                                       && output_ins.oprs[0].segment ==
                                       NO_SEG
                                       && output_ins.oprs[0].wrt == NO_SEG
                                       && (output_ins.oprs[1].
                                           type & IMMEDIATE)
                                       && output_ins.oprs[1].segment ==
                                       NO_SEG
                                       && output_ins.oprs[1].wrt ==
                                       NO_SEG) {
                                def_label(output_ins.label,
                                          output_ins.oprs[0].
                                          offset | SEG_ABS,
                                          output_ins.oprs[1].offset, NULL,
                                          FALSE, FALSE, ofmt,
                                          report_error);
                            } else
                                report_error(ERR_NONFATAL,
                                             "bad syntax for EQU");
                        }
                    } else {    /* pass == 2 */
                        /*
                         * Special `..' EQUs get processed here, except
                         * `..@' macro processor EQUs which are done above.
                         */
                        if (output_ins.label[0] == '.' &&
                            output_ins.label[1] == '.' &&
                            output_ins.label[2] != '@') {
                            if (output_ins.operands == 1 &&
                                (output_ins.oprs[0].type & IMMEDIATE)) {
                                define_label(output_ins.label,
                                             output_ins.oprs[0].segment,
                                             output_ins.oprs[0].offset,
                                             NULL, FALSE, FALSE, ofmt,
                                             report_error);
                            } else if (output_ins.operands == 2
                                       && (output_ins.oprs[0].
                                           type & IMMEDIATE)
                                       && (output_ins.oprs[0].type & COLON)
                                       && output_ins.oprs[0].segment ==
                                       NO_SEG
                                       && (output_ins.oprs[1].
                                           type & IMMEDIATE)
                                       && output_ins.oprs[1].segment ==
                                       NO_SEG) {
                                define_label(output_ins.label,
                                             output_ins.oprs[0].
                                             offset | SEG_ABS,
                                             output_ins.oprs[1].offset,
                                             NULL, FALSE, FALSE, ofmt,
                                             report_error);
                            } else
                                report_error(ERR_NONFATAL,
                                             "bad syntax for EQU");
                        }
                    }           /* pass == 2 */
                } else {        /* instruction isn't an EQU */

                    if (pass1 == 1) {

                        long l = insn_size(location.segment, offs, sb, cpu,
                                           &output_ins, report_error);

                        /* if (using_debug_info)  && output_ins.opcode != -1) */
                        if (using_debug_info)
                        {       /* fbk 03/25/01 */
                            /* this is done here so we can do debug type info */
                            long typeinfo =
                                TYS_ELEMENTS(output_ins.operands);
                            switch (output_ins.opcode) {
                            case I_RESB:
                                typeinfo =
                                    TYS_ELEMENTS(output_ins.oprs[0].
                                                 offset) | TY_BYTE;
                                break;
                            case I_RESW:
                                typeinfo =
                                    TYS_ELEMENTS(output_ins.oprs[0].
                                                 offset) | TY_WORD;
                                break;
                            case I_RESD:
                                typeinfo =
                                    TYS_ELEMENTS(output_ins.oprs[0].
                                                 offset) | TY_DWORD;
                                break;
                            case I_RESQ:
                                typeinfo =
                                    TYS_ELEMENTS(output_ins.oprs[0].
                                                 offset) | TY_QWORD;
                                break;
                            case I_REST:
                                typeinfo =
                                    TYS_ELEMENTS(output_ins.oprs[0].
                                                 offset) | TY_TBYTE;
                                break;
                            case I_DB:
                                typeinfo |= TY_BYTE;
                                break;
                            case I_DW:
                                typeinfo |= TY_WORD;
                                break;
                            case I_DD:
                                if (output_ins.eops_float)
                                    typeinfo |= TY_FLOAT;
                                else
                                    typeinfo |= TY_DWORD;
                                break;
                            case I_DQ:
                                typeinfo |= TY_QWORD;
                                break;
                            case I_DT:
                                typeinfo |= TY_TBYTE;
                                break;
                            default:
                                typeinfo = TY_LABEL;

                            }

                            ofmt->current_dfmt->debug_typevalue(typeinfo);

                        }
                        if (l != -1) {
                            offs += l;
                            SET_CURR_OFFS(offs);
                        }
                        /*
                         * else l == -1 => invalid instruction, which will be
                         * flagged as an error on pass 2
                         */

                    } else {    /* pass == 2 */
                        offs += assemble(location.segment, offs, sb, cpu,
                                         &output_ins, ofmt, report_error,
                                         &nasmlist);
                        SET_CURR_OFFS(offs);

                    }
                }               /* not an EQU */
                cleanup_insn(&output_ins);
            }
            nasm_free(line);
            location.offset = offs = GET_CURR_OFFS;
        }                       /* end while (line = preproc->getline... */

        if (pass1 == 2 && global_offset_changed)
            report_error(ERR_NONFATAL,
                         "phase error detected at end of assembly.");

        if (pass1 == 1)
            preproc->cleanup(1);

        if (pass1 == 1 && terminate_after_phase) {
            fclose(ofile);
            remove(outname);
            if (want_usage)
                usage();
            exit(1);
        }
        pass_cnt++;
        if (pass > 1 && !global_offset_changed) {
            pass0++;
            if (pass0 == 2)
                pass = pass_max - 1;
        } else if (!(optimizing > 0))
            pass0++;

    }                           /* for (pass=1; pass<=2; pass++) */

    preproc->cleanup(0);
    nasmlist.cleanup();
#if 1
    if (optimizing > 0 && opt_verbose_info)     /*  -On and -Ov switches */
        fprintf(stdout,
                "info:: assembly required 1+%d+1 passes\n", pass_cnt - 2);
#endif
}                               /* exit from assemble_file (...) */

static int getkw(char **directive, char **value)
{
    char *p, *q, *buf;

    buf = *directive;

    /*  allow leading spaces or tabs */
    while (*buf == ' ' || *buf == '\t')
        buf++;

    if (*buf != '[')
        return 0;

    p = buf;

    while (*p && *p != ']')
        p++;

    if (!*p)
        return 0;

    q = p++;

    while (*p && *p != ';') {
        if (!isspace(*p))
            return 0;
        p++;
    }
    q[1] = '\0';

    *directive = p = buf + 1;
    while (*buf && *buf != ' ' && *buf != ']' && *buf != '\t')
        buf++;
    if (*buf == ']') {
        *buf = '\0';
        *value = buf;
    } else {
        *buf++ = '\0';
        while (isspace(*buf))
            buf++;              /* beppu - skip leading whitespace */
        *value = buf;
        while (*buf != ']')
            buf++;
        *buf++ = '\0';
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
fc2成人免费人成在线观看播放| 激情综合色播激情啊| 不卡视频在线看| 亚洲美女视频在线| 在线观看区一区二| 婷婷六月综合亚洲| 欧美电视剧在线观看完整版| 国产盗摄女厕一区二区三区| 成人欧美一区二区三区白人| 欧美日韩性生活| 麻豆精品久久久| 国产精品乱人伦中文| 91九色最新地址| 狠狠狠色丁香婷婷综合久久五月| 国产日韩欧美一区二区三区综合| 91网站最新地址| 天使萌一区二区三区免费观看| 精品国产电影一区二区| 国产69精品一区二区亚洲孕妇 | 成人动漫中文字幕| 亚洲色图欧美激情| 日韩欧美在线综合网| 懂色av一区二区夜夜嗨| 亚洲成人先锋电影| 久久奇米777| 欧美三区在线视频| 国产成人一区在线| 日韩中文欧美在线| 亚洲视频一区二区在线观看| 欧美一区二区三区视频在线| 99v久久综合狠狠综合久久| 奇米精品一区二区三区四区| 中文字幕一区二区三区不卡在线| 欧美一区二视频| 99精品久久久久久| 精彩视频一区二区三区| 亚洲综合视频在线| 欧美国产精品劲爆| 日韩精品一区在线观看| 色综合色狠狠综合色| 精品一区二区三区免费| 亚洲精品国产成人久久av盗摄| 精品国产乱码久久久久久老虎| 色欧美乱欧美15图片| 国产精品性做久久久久久| 五月综合激情日本mⅴ| 自拍偷在线精品自拍偷无码专区| 26uuu亚洲婷婷狠狠天堂| 欧美精品色一区二区三区| 菠萝蜜视频在线观看一区| 美腿丝袜亚洲三区| 偷拍日韩校园综合在线| 亚洲男人的天堂网| 国产精品国产三级国产aⅴ中文| 精品入口麻豆88视频| 欧美三级视频在线观看| gogo大胆日本视频一区| 国产99久久久国产精品潘金网站| 奇米精品一区二区三区在线观看一 | 日韩精品免费视频人成| 亚洲精品视频一区| 中文字幕不卡一区| 国产欧美日韩三区| 久久色在线视频| 精品少妇一区二区三区免费观看 | 日韩欧美国产成人一区二区| 欧美日韩国产首页| 欧美亚洲综合另类| 在线视频欧美区| 色综合天天综合网天天狠天天| 从欧美一区二区三区| 成人午夜电影小说| 国产精品一级片| 成人av资源网站| 成人福利在线看| 91蜜桃免费观看视频| 99re成人精品视频| 色就色 综合激情| 欧美色图免费看| 欧美情侣在线播放| 3atv在线一区二区三区| 日韩小视频在线观看专区| 欧美一级高清片在线观看| 欧美久久久久久久久中文字幕| 欧美一区午夜视频在线观看| 欧美一级高清大全免费观看| 精品国产一区二区三区不卡| 偷拍与自拍一区| 秋霞影院一区二区| 精品在线播放午夜| 国产成人综合在线| 一区二区三区国产精华| 婷婷国产在线综合| 九一九一国产精品| 国产精品一区二区三区乱码| 不卡的av电影在线观看| 日本韩国精品在线| 欧美欧美欧美欧美| 久久综合色鬼综合色| 国产精品水嫩水嫩| 亚洲尤物视频在线| 极品少妇xxxx偷拍精品少妇| 国产成人在线视频播放| 色婷婷亚洲综合| 91麻豆精品久久久久蜜臀| 2020国产成人综合网| 亚洲免费观看高清完整版在线观看熊| 亚洲一区电影777| 激情综合亚洲精品| 99久久综合国产精品| 欧美日韩一二区| 国产三级精品三级在线专区| 亚洲精品乱码久久久久久日本蜜臀| 午夜精品久久久久久不卡8050| 激情伊人五月天久久综合| 99久久777色| 日韩欧美一级在线播放| 综合久久久久久久| 精品一区二区精品| 91福利视频网站| 久久久久久久久一| 亚洲一区二区三区影院| 国产成人精品综合在线观看| 欧美视频在线一区二区三区| 精品女同一区二区| 一区二区高清免费观看影视大全 | 在线电影一区二区三区| 中文字幕视频一区二区三区久| 亚洲成av人片在线观看| 国产激情视频一区二区在线观看| 欧美日韩在线亚洲一区蜜芽| 久久久久久久久久久99999| 日日嗨av一区二区三区四区| thepron国产精品| 久久综合成人精品亚洲另类欧美 | 成人午夜免费av| 欧美xxxxx裸体时装秀| 一区二区三区小说| 国产成人啪午夜精品网站男同| 欧美一二三在线| 亚洲国产成人精品视频| 99riav久久精品riav| 国产亚洲精品aa| 免费成人结看片| 欧美高清你懂得| 一区二区三区在线观看网站| 成人久久18免费网站麻豆 | 久久精品国产99久久6| 欧美色图天堂网| 亚洲精品网站在线观看| 91在线视频播放| 国产精品毛片久久久久久| 国产一区二区三区在线观看精品| 日韩一级二级三级| 日本伊人色综合网| 欧美日韩1区2区| 五月天中文字幕一区二区| 欧美午夜精品一区二区三区| 亚洲一区免费观看| 91九色02白丝porn| 一区二区欧美视频| 欧美主播一区二区三区| 亚洲一区二区三区四区五区中文| 99re热这里只有精品免费视频| 中文字幕在线一区免费| av不卡免费在线观看| 国产精品毛片高清在线完整版| 波多野结衣中文字幕一区| 国产精品视频第一区| 白白色亚洲国产精品| 成人免费一区二区三区视频 | 久久aⅴ国产欧美74aaa| 欧美大片在线观看一区| 精品亚洲成a人| 国产亚洲成年网址在线观看| 成人手机在线视频| 亚洲日本电影在线| 欧美视频一区二区在线观看| 日本欧美久久久久免费播放网| 欧美丰满嫩嫩电影| 激情小说亚洲一区| 国产精品区一区二区三区| aaa欧美大片| 亚洲第一会所有码转帖| 日韩欧美第一区| 国产69精品久久99不卡| 亚洲精品成a人| 日韩一区二区三区观看| 国产精品一区二区x88av| 国产精品麻豆视频| 欧美性大战久久久| 免费xxxx性欧美18vr| 久久婷婷国产综合国色天香| 99天天综合性| 日韩国产一区二| 欧美激情综合五月色丁香| 91久久人澡人人添人人爽欧美| 日韩高清欧美激情| 久久久久久久久久久黄色| 欧洲人成人精品|