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

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

?? nasm.c

?? 32位匯編編譯器nasm源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
#if 0
    for (q = p; *q; q++)
        *q = tolower(*q);
#endif
    if (!nasm_stricmp(p, "segment") || !nasm_stricmp(p, "section"))
        return 1;
    if (!nasm_stricmp(p, "extern"))
        return 2;
    if (!nasm_stricmp(p, "bits"))
        return 3;
    if (!nasm_stricmp(p, "global"))
        return 4;
    if (!nasm_stricmp(p, "common"))
        return 5;
    if (!nasm_stricmp(p, "absolute"))
        return 6;
    if (!nasm_stricmp(p, "debug"))
        return 7;
    if (!nasm_stricmp(p, "warning"))
        return 8;
    if (!nasm_stricmp(p, "cpu"))
        return 9;
    if (!nasm_stricmp(p, "list"))       /* fbk 9/2/00 */
        return 10;
    return -1;
}

/**
 * gnu style error reporting
 * This function prints an error message to error_file in the
 * style used by GNU. An example would be:
 * file.asm:50: error: blah blah blah
 * where file.asm is the name of the file, 50 is the line number on 
 * which the error occurs (or is detected) and "error:" is one of
 * the possible optional diagnostics -- it can be "error" or "warning"
 * or something else.  Finally the line terminates with the actual 
 * error message.
 * 
 * @param severity the severity of the warning or error 
 * @param fmt the printf style format string
 */
static void report_error_gnu(int severity, const char *fmt, ...)
{
    va_list ap;

    if (is_suppressed_warning(severity))
        return;

    if (severity & ERR_NOFILE)
        fputs("nasm: ", error_file);
    else {
        char *currentfile = NULL;
        long lineno = 0;
        src_get(&lineno, &currentfile);
        fprintf(error_file, "%s:%ld: ", currentfile, lineno);
        nasm_free(currentfile);
    }
    va_start(ap, fmt);
    report_error_common(severity, fmt, ap);
    va_end(ap);
}

/**
 * MS style error reporting
 * This function prints an error message to error_file in the
 * style used by Visual C and some other Microsoft tools. An example 
 * would be:
 * file.asm(50) : error: blah blah blah
 * where file.asm is the name of the file, 50 is the line number on 
 * which the error occurs (or is detected) and "error:" is one of
 * the possible optional diagnostics -- it can be "error" or "warning"
 * or something else.  Finally the line terminates with the actual 
 * error message.
 * 
 * @param severity the severity of the warning or error 
 * @param fmt the printf style format string
 */
static void report_error_vc(int severity, const char *fmt, ...)
{
    va_list ap;

    if (is_suppressed_warning(severity))
        return;

    if (severity & ERR_NOFILE)
        fputs("nasm: ", error_file);
    else {
        char *currentfile = NULL;
        long lineno = 0;
        src_get(&lineno, &currentfile);
        fprintf(error_file, "%s(%ld) : ", currentfile, lineno);
        nasm_free(currentfile);
    }
    va_start(ap, fmt);
    report_error_common(severity, fmt, ap);
    va_end(ap);
}

/**
 * check for supressed warning
 * checks for suppressed warning or pass one only warning and we're 
 * not in pass 1
 *
 * @param severity the severity of the warning or error
 * @return true if we should abort error/warning printing
 */
static int is_suppressed_warning(int severity)
{
    /*
     * See if it's a suppressed warning.
     */
    return ((severity & ERR_MASK) == ERR_WARNING &&
            (severity & ERR_WARN_MASK) != 0 &&
            suppressed[(severity & ERR_WARN_MASK) >> ERR_WARN_SHR]) ||
        /*
         * See if it's a pass-one only warning and we're not in pass one.
         */
        ((severity & ERR_PASS1) && pass0 == 2);
}

/**
 * common error reporting
 * This is the common back end of the error reporting schemes currently
 * implemented.  It prints the nature of the warning and then the 
 * specific error message to error_file and may or may not return.  It
 * doesn't return if the error severity is a "panic" or "debug" type.
 * 
 * @param severity the severity of the warning or error 
 * @param fmt the printf style format string
 */
static void report_error_common(int severity, const char *fmt,
                                va_list args)
{
    switch (severity & ERR_MASK) {
    case ERR_WARNING:
        fputs("warning: ", error_file);
        break;
    case ERR_NONFATAL:
        fputs("error: ", error_file);
        break;
    case ERR_FATAL:
        fputs("fatal: ", error_file);
        break;
    case ERR_PANIC:
        fputs("panic: ", error_file);
        break;
    case ERR_DEBUG:
        fputs("debug: ", error_file);
        break;
    }

    vfprintf(error_file, fmt, args);
    fputc('\n', error_file);

    if (severity & ERR_USAGE)
        want_usage = TRUE;

    switch (severity & ERR_MASK) {
    case ERR_WARNING:
    case ERR_DEBUG:
        /* no further action, by definition */
        break;
    case ERR_NONFATAL:
        /* hack enables listing(!) on errors */
        terminate_after_phase = TRUE;
        break;
    case ERR_FATAL:
        if (ofile) {
            fclose(ofile);
            remove(outname);
        }
        if (want_usage)
            usage();
        exit(1);                /* instantly die */
        break;                  /* placate silly compilers */
    case ERR_PANIC:
        fflush(NULL);
        /*	abort();	*//* halt, catch fire, and dump core */
        exit(3);
        break;
    }
}

static void usage(void)
{
    fputs("type `nasm -h' for help\n", error_file);
}

static void register_output_formats(void)
{
    ofmt = ofmt_register(report_error);
}

#define BUF_DELTA 512

static FILE *no_pp_fp;
static efunc no_pp_err;
static ListGen *no_pp_list;
static long no_pp_lineinc;

static void no_pp_reset(char *file, int pass, efunc error, evalfunc eval,
                        ListGen * listgen)
{
    src_set_fname(nasm_strdup(file));
    src_set_linnum(0);
    no_pp_lineinc = 1;
    no_pp_err = error;
    no_pp_fp = fopen(file, "r");
    if (!no_pp_fp)
        no_pp_err(ERR_FATAL | ERR_NOFILE,
                  "unable to open input file `%s'", file);
    no_pp_list = listgen;
    (void)pass;                 /* placate compilers */
    (void)eval;                 /* placate compilers */
}

static char *no_pp_getline(void)
{
    char *buffer, *p, *q;
    int bufsize;

    bufsize = BUF_DELTA;
    buffer = nasm_malloc(BUF_DELTA);
    src_set_linnum(src_get_linnum() + no_pp_lineinc);

    while (1) {                 /* Loop to handle %line */

        p = buffer;
        while (1) {             /* Loop to handle long lines */
            q = fgets(p, bufsize - (p - buffer), no_pp_fp);
            if (!q)
                break;
            p += strlen(p);
            if (p > buffer && p[-1] == '\n')
                break;
            if (p - buffer > bufsize - 10) {
                int offset;
                offset = p - buffer;
                bufsize += BUF_DELTA;
                buffer = nasm_realloc(buffer, bufsize);
                p = buffer + offset;
            }
        }

        if (!q && p == buffer) {
            nasm_free(buffer);
            return NULL;
        }

        /*
         * Play safe: remove CRs, LFs and any spurious ^Zs, if any of
         * them are present at the end of the line.
         */
        buffer[strcspn(buffer, "\r\n\032")] = '\0';

        if (!strncmp(buffer, "%line", 5)) {
            long ln;
            int li;
            char *nm = nasm_malloc(strlen(buffer));
            if (sscanf(buffer + 5, "%ld+%d %s", &ln, &li, nm) == 3) {
                nasm_free(src_set_fname(nm));
                src_set_linnum(ln);
                no_pp_lineinc = li;
                continue;
            }
            nasm_free(nm);
        }
        break;
    }

    no_pp_list->line(LIST_READ, buffer);

    return buffer;
}

static void no_pp_cleanup(int pass)
{
    fclose(no_pp_fp);
}

static unsigned long get_cpu(char *value)
{

    if (!strcmp(value, "8086"))
        return IF_8086;
    if (!strcmp(value, "186"))
        return IF_186;
    if (!strcmp(value, "286"))
        return IF_286;
    if (!strcmp(value, "386"))
        return IF_386;
    if (!strcmp(value, "486"))
        return IF_486;
    if (!strcmp(value, "586") || !nasm_stricmp(value, "pentium"))
        return IF_PENT;
    if (!strcmp(value, "686") ||
        !nasm_stricmp(value, "ppro") ||
        !nasm_stricmp(value, "pentiumpro") || !nasm_stricmp(value, "p2"))
        return IF_P6;
    if (!nasm_stricmp(value, "p3") || !nasm_stricmp(value, "katmai"))
        return IF_KATMAI;
    if (!nasm_stricmp(value, "p4") ||   /* is this right? -- jrc */
        !nasm_stricmp(value, "willamette"))
        return IF_WILLAMETTE;
    if (!nasm_stricmp(value, "prescott"))
        return IF_PRESCOTT;
    if (!nasm_stricmp(value, "ia64") ||
        !nasm_stricmp(value, "ia-64") ||
        !nasm_stricmp(value, "itanium") ||
        !nasm_stricmp(value, "itanic") || !nasm_stricmp(value, "merced"))
        return IF_IA64;

    report_error(pass0 < 2 ? ERR_NONFATAL : ERR_FATAL,
                 "unknown 'cpu' type");

    return IF_PLEVEL;           /* the maximum level */
}

static int get_bits(char *value)
{
    int i;

    if ((i = atoi(value)) == 16)
        return i;               /* set for a 16-bit segment */
    else if (i == 32) {
        if (cpu < IF_386) {
            report_error(ERR_NONFATAL,
                         "cannot specify 32-bit segment on processor below a 386");
            i = 16;
        }
    } else {
        report_error(pass0 < 2 ? ERR_NONFATAL : ERR_FATAL,
                     "`%s' is not a valid segment size; must be 16 or 32",
                     value);
        i = 16;
    }
    return i;
}

/* end of nasm.c */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合在线第一页| 国产精品自拍av| 中文字幕乱码久久午夜不卡| 在线精品亚洲一区二区不卡| 成人免费毛片aaaaa**| 久久精品国产精品青草| 亚洲一二三区不卡| 亚洲一区二区三区视频在线| 国产美女精品在线| 国产成人精品亚洲日本在线桃色| 国产精品88av| 日韩午夜激情av| 日韩欧美二区三区| 精品久久久久久无| 久久众筹精品私拍模特| 26uuuu精品一区二区| 午夜精品久久久| 日本在线不卡一区| 热久久免费视频| 国产精品影视网| 日韩欧美久久一区| 日本不卡一区二区三区高清视频| 欧美在线观看18| 亚洲精品乱码久久久久久日本蜜臀| 一区二区在线免费| 91玉足脚交白嫩脚丫在线播放| 欧洲一区在线观看| 亚洲色图欧洲色图| 亚洲第一福利一区| 国内一区二区在线| 91精品福利视频| 欧美精品v日韩精品v韩国精品v| 欧美一级一区二区| 欧美激情在线一区二区| 国产精品18久久久久久久久久久久 | 欧美绝品在线观看成人午夜影视| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 福利一区二区在线观看| 欧美丝袜自拍制服另类| 欧美精品一区二区三区高清aⅴ| 亚洲欧洲99久久| 亚洲高清免费视频| 欧美久久高跟鞋激| 免费精品视频最新在线| 日韩丝袜情趣美女图片| 精品一区二区三区欧美| 91国在线观看| 午夜精品国产更新| 久久综合色婷婷| 成人激情黄色小说| 欧美大片免费久久精品三p| 免费成人在线播放| 国产视频911| 日本午夜精品视频在线观看| 日韩一区二区在线看| 国产精品资源在线| 亚洲人成小说网站色在线| 国产成人免费视频网站| 中文字幕一区二区三区精华液| 色综合激情五月| 久久综合久久综合久久| 不卡视频一二三四| 三级影片在线观看欧美日韩一区二区 | 99在线精品观看| 国产日韩一级二级三级| 日本亚洲三级在线| 欧美激情一区三区| 91精品国产综合久久久久| 亚洲综合免费观看高清完整版在线 | 国产日产欧美精品一区二区三区| 91九色02白丝porn| 国产一区二区三区在线看麻豆| 亚洲男人的天堂网| 欧美va日韩va| 日本韩国一区二区| 狠狠网亚洲精品| 亚洲一区二区欧美| 日本一区二区不卡视频| 日韩三级电影网址| 色哟哟一区二区| 国产乱码精品一区二区三区忘忧草 | 亚洲第一激情av| 国产精品视频一区二区三区不卡| 国产成人综合亚洲网站| 亚洲一二三级电影| 国产精品国产三级国产普通话99| 成人性色生活片免费看爆迷你毛片| 一区二区三区中文字幕| 91极品视觉盛宴| 国产精品中文字幕日韩精品 | 9i看片成人免费高清| 日韩av网站在线观看| 亚洲人成亚洲人成在线观看图片| 精品福利在线导航| 欧美精选在线播放| 色香蕉成人二区免费| 成人免费黄色在线| 国产美女精品人人做人人爽| 蜜臀av性久久久久蜜臀aⅴ四虎 | 久久精品国产秦先生| 亚洲第一福利视频在线| 亚洲精品网站在线观看| 国产精品三级视频| 国产亚洲精品久| 国产亚洲美州欧州综合国| 精品国产乱码久久久久久久| 51午夜精品国产| 在线不卡中文字幕| 精品视频1区2区3区| 乱一区二区av| 蜜桃视频一区二区三区| 日韩电影在线免费观看| 婷婷六月综合网| 视频在线观看91| 久久精品国产精品亚洲精品| 久久精品国产精品青草| 国产乱淫av一区二区三区| 久久99这里只有精品| 精品一二三四区| 国产高清精品在线| 不卡视频免费播放| 91小视频免费观看| 91国产免费观看| 69p69国产精品| 日韩精品中文字幕在线不卡尤物| 欧美电影免费观看高清完整版在线观看 | 欧美不卡123| 2020日本不卡一区二区视频| 欧美精品一区视频| 国产亚洲欧美激情| 亚洲女人的天堂| 亚洲大片精品永久免费| 久久99精品国产.久久久久久 | 在线观看免费亚洲| 欧美高清视频在线高清观看mv色露露十八| 69p69国产精品| 国产亚洲欧美日韩日本| 一区二区三区四区中文字幕| 亚洲在线视频一区| 裸体一区二区三区| av在线不卡观看免费观看| 91福利小视频| 精品乱码亚洲一区二区不卡| 久久精品人人做人人爽人人| 亚洲婷婷国产精品电影人久久| 亚洲在线视频网站| 国内精品国产成人国产三级粉色| 成人97人人超碰人人99| av电影在线观看一区| 3atv在线一区二区三区| 国产日本一区二区| 亚洲高清在线视频| 国产美女一区二区| 欧美日韩一区二区不卡| 精品国产三级电影在线观看| 最新国产の精品合集bt伙计| 日本成人在线一区| 一本高清dvd不卡在线观看| 欧美大胆人体bbbb| 午夜亚洲福利老司机| 精品一区二区三区视频| 91麻豆国产香蕉久久精品| 日韩欧美一区在线| 伊人色综合久久天天| 国产大片一区二区| 在线播放/欧美激情| 亚洲欧洲另类国产综合| 精品一区二区三区在线观看国产| 色久综合一二码| 中文在线一区二区| 久久精品国产77777蜜臀| 91久久线看在观草草青青| 国产视频在线观看一区二区三区 | 日韩一区二区三免费高清| 亚洲婷婷国产精品电影人久久| 精品午夜久久福利影院| 欧美日韩一区二区三区不卡 | 久久久不卡网国产精品一区| 精品国产制服丝袜高跟| 亚洲一区电影777| 国产精品久线在线观看| 99免费精品在线观看| 91精品国产入口| 亚洲欧美区自拍先锋| 国产成人综合精品三级| 日韩一卡二卡三卡四卡| 午夜精品久久久久久久蜜桃app| 成人av免费在线| 国产精品白丝在线| 成人福利视频在线| 国产精品对白交换视频| 成人高清免费观看| 国产精品美女久久久久av爽李琼| 国产成人欧美日韩在线电影| 欧美xxxxx牲另类人与| 日本vs亚洲vs韩国一区三区二区| 欧美日韩免费电影| 欧美色网站导航| 亚洲视频一区二区在线观看| 成人精品国产免费网站|