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

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

?? nasm.c

?? nasm匯編編譯器源碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
               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++)
		        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);

                        }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人一区二区三区视频 | 日本一区二区三区视频视频| 国产亚洲欧美日韩在线一区| 伊人色综合久久天天人手人婷| 日韩av一区二| 一本一道久久a久久精品| 欧美不卡激情三级在线观看| 亚洲一区二区三区四区中文字幕| 国产毛片精品一区| 91精品国产色综合久久久蜜香臀| 国产精品无码永久免费888| 免费观看一级欧美片| 在线观看日产精品| 亚洲视频免费观看| 成人app在线观看| 国产人妖乱国产精品人妖| 青青青伊人色综合久久| 欧美天堂一区二区三区| 自拍偷在线精品自拍偷无码专区 | 韩国一区二区在线观看| 欧美色图一区二区三区| 伊人性伊人情综合网| 成人午夜电影久久影院| 久久久久久免费网| 久久爱另类一区二区小说| 欧美高清一级片在线| 亚洲成人免费影院| 日本久久电影网| 亚洲精品日韩专区silk| 97久久人人超碰| 日韩毛片视频在线看| voyeur盗摄精品| 亚洲猫色日本管| 欧美亚洲日本一区| 午夜一区二区三区在线观看| 欧美日韩亚洲综合一区二区三区| 亚洲综合视频在线观看| 欧美日韩一区精品| 天堂在线一区二区| 精品国精品自拍自在线| 国产麻豆精品在线观看| 国产日本亚洲高清| 99久久久久久| 亚洲二区在线视频| 91精品国产高清一区二区三区| 日本视频在线一区| 337p日本欧洲亚洲大胆色噜噜| 久久福利视频一区二区| 久久久精品黄色| 成人国产在线观看| 亚洲国产综合在线| 国产精品丝袜久久久久久app| 国产一区999| 亚洲理论在线观看| 欧美一区二区三区四区视频| 国产在线精品一区二区不卡了| 亚洲国产成人自拍| 在线观看国产一区二区| 美女视频黄久久| 国产欧美精品一区| 欧美午夜精品电影| 精品一区二区三区久久久| 国产精品美女久久久久久久| 91久久线看在观草草青青| 日韩高清电影一区| 国产精品传媒入口麻豆| 欧美狂野另类xxxxoooo| 国产综合久久久久久久久久久久| 最好看的中文字幕久久| 日韩欧美在线网站| 一本一道久久a久久精品综合蜜臀| 三级欧美在线一区| 国产精品看片你懂得| 欧美一区二区三区免费| www.亚洲激情.com| 麻豆精品一区二区综合av| 中文字幕一区二区三区四区| 欧美精品乱码久久久久久 | 国产在线精品免费av| 综合色中文字幕| 欧美精品一区二区不卡| 色94色欧美sute亚洲线路二| 国产一区二区看久久| 亚洲小少妇裸体bbw| 国产欧美日韩视频在线观看| 欧美日韩精品欧美日韩精品| 成人美女在线观看| 久久99国产精品免费| 午夜不卡在线视频| 亚洲精品菠萝久久久久久久| 国产网站一区二区三区| 欧美一区二区大片| 欧美日韩一区三区四区| 91免费版在线看| 成人av电影观看| 国产成人三级在线观看| 久草在线在线精品观看| 午夜婷婷国产麻豆精品| 亚洲最大色网站| 中文字幕一区二区三区四区| 国产视频视频一区| 26uuu成人网一区二区三区| 欧美一区二区三区四区视频| 欧美日韩卡一卡二| 欧美日韩在线直播| 欧美三级中文字幕在线观看| 欧美网站大全在线观看| 色婷婷av一区| 91福利视频久久久久| 日本韩国精品在线| 色婷婷综合久久| 在线精品视频免费观看| 91久久精品网| 欧美日韩精品久久久| 欧美美女视频在线观看| 欧美日韩国产小视频| 欧美精品电影在线播放| 欧美一区二区三区视频在线| 91精品国产综合久久香蕉的特点 | 国产伦精品一区二区三区在线观看| 日本不卡的三区四区五区| 毛片av一区二区三区| 精品一区二区在线播放| 国产一区二区毛片| av激情综合网| 欧美写真视频网站| 91精品国产一区二区| 精品不卡在线视频| 国产精品久久久久久亚洲伦| 国产精品久久久久久久久免费相片 | 日韩av高清在线观看| 奇米影视一区二区三区小说| 裸体一区二区三区| 国产98色在线|日韩| 91老师国产黑色丝袜在线| 欧美三级日韩在线| 2020日本不卡一区二区视频| 26uuu欧美日本| 国产精品久久久久久妇女6080 | 97精品久久久久中文字幕 | 久久久久免费观看| 亚洲欧美激情插| 日韩va欧美va亚洲va久久| 精品一区二区久久久| 成人性色生活片| 欧美日韩国产色站一区二区三区| 日韩午夜精品电影| 亚洲同性同志一二三专区| 天堂va蜜桃一区二区三区漫画版| 久久精品国产亚洲aⅴ| 99视频热这里只有精品免费| 欧美日本高清视频在线观看| 久久一留热品黄| 亚洲成人福利片| 丁香亚洲综合激情啪啪综合| 精品视频在线免费观看| 国产亚洲一二三区| 天堂va蜜桃一区二区三区| 国产不卡在线一区| 7777精品伊人久久久大香线蕉经典版下载 | 日韩av二区在线播放| 成人app软件下载大全免费| 91麻豆精品国产综合久久久久久| 亚洲国产精品精华液ab| 五月天激情综合网| 91视频国产观看| 久久久精品国产免费观看同学| 亚洲国产成人精品视频| 国产精品白丝jk黑袜喷水| 欧美日韩免费不卡视频一区二区三区| 精品国产电影一区二区| 亚洲激情图片小说视频| 在线欧美一区二区| 中文字幕av免费专区久久| 奇米精品一区二区三区在线观看一| 97久久久精品综合88久久| 欧美激情一区二区三区蜜桃视频 | 精品一区二区三区久久久| 91免费视频大全| 国产日韩欧美不卡| 激情av综合网| 91精品国产福利| 亚洲丰满少妇videoshd| 色综合天天性综合| 精品久久久久久综合日本欧美| 国产精品高清亚洲| 国产成人在线视频网址| 91精品国产aⅴ一区二区| 欧美三级一区二区| 亚洲影院久久精品| 精品一二三四区| 日韩一区二区在线观看视频播放 | 亚洲色图在线播放| 成人免费毛片a| 国产精品视频看| av在线播放成人| 中文字幕视频一区| 色综合久久综合网97色综合| 中文字幕免费观看一区| 成人精品视频网站|