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

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

?? nasm.c

?? nasm匯編編譯器源碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
		if (opt == -99) report_error(ERR_FATAL,
			"command line optimization level must be 'v', 0..3 or <nn>");
	    } else if (p[1]=='P' || p[1]=='p') {    /* pre-include */
		pp_pre_include (param);
	    } else if (p[1]=='D' || p[1]=='d') {    /* pre-define */
		pp_pre_define (param);
	    } else if (p[1]=='U' || p[1]=='u') {    /* un-define */
		pp_pre_undefine (param);
	    } else if (p[1]=='I' || p[1]=='i') {    /* include search path */
		pp_include_path (param);
	    } else if (p[1]=='l') {    /* listing file */
		strcpy (listname, param);
	    } else if (p[1]=='E') {    /* error messages file */
		error_file = fopen(param, "w");
		if ( !error_file ) {
		  error_file = stderr; /* Revert to default! */
		  report_error (ERR_FATAL | ERR_NOFILE | ERR_USAGE,
				"cannot open file `%s' for error messages",
				param);
		}
	    } else if (p[1] == 'F') {  /* specify debug format */
	        ofmt->current_dfmt = dfmt_find(ofmt, param);
	        if (!ofmt->current_dfmt) {
	            report_error (ERR_FATAL | ERR_NOFILE | ERR_USAGE,
	    	    		  "unrecognized debug format `%s' for"
			    	  " output format `%s'",
				  param, ofmt->shortname);
                }
            } else if (p[1] == 'X') { /* specify error reporting format */
		if (nasm_stricmp("vc", param) == 0)
		    report_error = report_error_vc;
		else if (nasm_stricmp("gnu", param) == 0)
		    report_error = report_error_gnu;
		else
		    report_error (ERR_FATAL | ERR_NOFILE | ERR_USAGE,
				  "unrecognized error reporting format `%s'",
				  param);
	    }
	    break;
	  case 'g':
	    using_debug_info = TRUE;
	    break;
	  case 'h':
	    printf("usage: nasm [-@ response file] [-o outfile] [-f format] "
		   "[-l listfile]\n"
		   "            [options...] [--] filename\n"
		   "    or nasm -r   for version info (obsolete)\n"
		   "    or nasm -v   for version info (preferred)\n\n"
		   "    -t          Assemble in SciTech TASM compatible mode\n"
		   "    -g          Generate debug information in selected format.\n");
	    printf("    -e          preprocess only (writes output to stdout by default)\n"
		   "    -a          don't preprocess (assemble only)\n"
		   "    -M          generate Makefile dependencies on stdout\n\n"
		   "    -E<file>    redirect error messages to file\n"
		   "    -s          redirect error messages to stdout\n\n"
		   "    -F format   select a debugging format\n\n"
		   "    -I<path>    adds a pathname to the include file path\n");
	    printf("    -O<digit>   optimize branch offsets (-O0 disables, default)\n"
		   "    -P<file>    pre-includes a file\n"
		   "    -D<macro>[=<value>] pre-defines a macro\n"
		   "    -U<macro>   undefines a macro\n"
		   "    -X<format>  specifies error reporting format (gnu or vc)\n"
		   "    -w+foo      enables warnings about foo; -w-foo disables them\n"
		   "where foo can be:\n");
	    for (i=1; i<=ERR_WARN_MAX; i++)
		printf("    %-23s %s (default %s)\n",
		       suppressed_names[i], suppressed_what[i],
		       suppressed[i] ? "off" : "on");
	    printf ("\nresponse files should contain command line parameters"
		    ", one per line.\n");
	    if (p[2] == 'f') {
		printf("\nvalid output formats for -f are"
		       " (`*' denotes default):\n");
		ofmt_list(ofmt, stdout);
	    }
	    else {
		printf ("\nFor a list of valid output formats, use -hf.\n");
		printf ("For a list of debug formats, use -f <form> -y.\n");
	    }
	    exit (0);		       /* never need usage message here */
	    break;
          case 'y':
	    printf("\nvalid debug formats for '%s' output format are"
		   " ('*' denotes default):\n",
		ofmt->shortname);
	    dfmt_list(ofmt, stdout);
	    exit(0);
	    break;
	  case 't':
	    tasm_compatible_mode = TRUE;
	    break;
	  case 'r':
	  case 'v':
	  {
	      const char *nasm_version_string =
		  "NASM version " NASM_VER " compiled on " __DATE__
#ifdef DEBUG
		  " with -DDEBUG"
#endif
		  ;
	      puts(nasm_version_string);
	      exit (0);		       /* never need usage message here */
	  }
	  break;
	  case 'e':		       /* preprocess only */
	    operating_mode = op_preprocess;
	    break;
	  case 'a':		       /* assemble only - don't preprocess */
	    preproc = &no_pp;
	    break;
	  case 'w':
	    if (p[2] != '+' && p[2] != '-') {
		report_error (ERR_NONFATAL | ERR_NOFILE | ERR_USAGE,
			      "invalid option to `-w'");
	    } else {
                for (i=1; i<=ERR_WARN_MAX; i++)
		    if (!nasm_stricmp(p+3, suppressed_names[i]))
			break;
		if (i <= ERR_WARN_MAX)
		    suppressed[i] = (p[2] == '-');
		else
		    report_error (ERR_NONFATAL | ERR_NOFILE | ERR_USAGE,
				  "invalid option to `-w'");
	    }
	    break;
          case 'M':
	    operating_mode = op_depend;
	    break;

	  case '-':
	  {
		int s;
		
		if (p[2]==0) {		/* -- => stop processing options */
		    stopoptions = 1;
		    break;
		}
		for(s=0; textopts[s].label; s++)
		{
			if(!nasm_stricmp(p+2, textopts[s].label))
			{
				break;
			}
		}

		switch(s)
		{
		
			case OPT_PREFIX:
			case OPT_POSTFIX:
			{
				if (!q)
				{
					report_error (ERR_NONFATAL | ERR_NOFILE | ERR_USAGE,
			      			"option `--%s' requires an argument",
			      			p+2);
					break;
				}
				else
				{
					advance = 1, param = q;
				}
				
				if(s == OPT_PREFIX)
				{
					strncpy(lprefix,param,PREFIX_MAX-1);
					lprefix[PREFIX_MAX-1]=0;
					break;
				}
				if(s == OPT_POSTFIX)
				{
					strncpy(lpostfix,param,POSTFIX_MAX-1);
					lpostfix[POSTFIX_MAX-1]=0;
					break;
				}
				break;
			}
			default:
			{
				report_error (ERR_NONFATAL | ERR_NOFILE | ERR_USAGE,
			  		"unrecognised option `--%s'",
			  		p+2);
				break;
			}
		}
		break;
	  }

	  default:
	    if (!ofmt->setinfo(GI_SWITCH,&p))
	    	report_error (ERR_NONFATAL | ERR_NOFILE | ERR_USAGE,
			  "unrecognised option `-%c'",
			  p[1]);
	    break;
	}
    }
    else
    {
	if (*inname) {
	    report_error (ERR_NONFATAL | ERR_NOFILE | ERR_USAGE,
			  "more than one input file specified");
	} else
	    strcpy(inname, p);
    }

    return advance;
}

#define ARG_BUF_DELTA 128

static void process_respfile (FILE *rfile)
{
    char *buffer, *p, *q, *prevarg;
    int bufsize, prevargsize;

    bufsize = prevargsize = ARG_BUF_DELTA;
    buffer = nasm_malloc(ARG_BUF_DELTA);
    prevarg = nasm_malloc(ARG_BUF_DELTA);
    prevarg[0] = '\0';

    while (1) {   /* Loop to handle all lines in file */

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

	if (!q && p == buffer) {
	    if (prevarg[0])
		process_arg (prevarg, NULL);
	    nasm_free (buffer);
	    nasm_free (prevarg);
	    return;
	}

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

	while (p > buffer && isspace(p[-1]))
	    *--p = '\0';

	p = buffer;
	while (isspace(*p))
	    p++;

	if (process_arg (prevarg, p))
	    *p = '\0';

	if (strlen(p) > prevargsize-10) {
	    prevargsize += ARG_BUF_DELTA;
	    prevarg = nasm_realloc(prevarg, prevargsize);
	}
	strcpy (prevarg, p);
    }
}

/* Function to process args from a string of args, rather than the
 * argv array. Used by the environment variable and response file
 * processing.
 */
static void process_args (char *args) {
    char *p, *q, *arg, *prevarg;
    char separator = ' ';

    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)) )
         {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产日本视频| 国产精品麻豆久久久| 精品久久久久久久久久久久包黑料| 精品国产乱码久久久久久影片| 国产精品女人毛片| 免费人成在线不卡| 91精品福利视频| 久久免费的精品国产v∧| 亚洲国产视频直播| 成人性生交大片免费看在线播放 | 色婷婷av一区二区三区之一色屋| 9191成人精品久久| 亚洲精品亚洲人成人网| 国产毛片精品国产一区二区三区| 欧美日韩在线不卡| 国产做a爰片久久毛片| 色综合久久精品| 国产亚洲短视频| 日本伊人午夜精品| 欧美日韩一二三| 亚洲人快播电影网| 粉嫩一区二区三区在线看| 日韩亚洲欧美高清| 亚洲电影一区二区三区| 99久久精品免费看国产免费软件| 久久久国产精华| 国产综合一区二区| 精品国产乱码91久久久久久网站| 亚洲成av人片在线| 欧美人牲a欧美精品| 一区二区三区蜜桃网| 91丨porny丨户外露出| 成人欧美一区二区三区小说| 国产91丝袜在线播放| 国产日韩欧美精品电影三级在线| 国内精品免费**视频| 精品国产a毛片| 国精产品一区一区三区mba视频| 日韩欧美国产成人一区二区| 日本亚洲天堂网| 亚洲一区二区高清| 在线观看av一区二区| 一区二区不卡在线视频 午夜欧美不卡在 | 精品久久久久久久久久久院品网| 日韩高清一区在线| 日韩久久免费av| 精品一区二区三区在线观看| 精品日韩av一区二区| 国产成人亚洲综合a∨婷婷| 欧美激情一二三区| caoporn国产精品| 一区二区欧美视频| 51精品久久久久久久蜜臀| 久久爱www久久做| 国产亚洲精品免费| 91一区一区三区| 亚洲一区免费在线观看| 欧美日韩国产a| 蜜臀a∨国产成人精品| 久久亚洲欧美国产精品乐播| 成人av午夜电影| 亚洲国产aⅴ天堂久久| 欧美一级xxx| 国产成人无遮挡在线视频| 亚洲激情六月丁香| 日韩女优电影在线观看| 成人美女在线视频| 亚洲国产精品久久久久婷婷884| 日韩视频在线一区二区| 国产精品123| 亚洲线精品一区二区三区八戒| 日韩欧美资源站| 久久这里只有精品6| 91亚洲精品乱码久久久久久蜜桃| 日韩激情视频网站| 国产精品伦理在线| 欧美一区二区三区四区五区 | 日韩亚洲欧美中文三级| 成人精品一区二区三区中文字幕| 一区二区三区在线观看动漫 | 国产日韩欧美一区二区三区乱码| 在线视频亚洲一区| 国产一区二区三区香蕉| 亚洲综合小说图片| 久久久五月婷婷| 欧美精品电影在线播放| 成人免费毛片a| 蜜臀av性久久久久蜜臀aⅴ | 国产精品自拍三区| 午夜激情一区二区| 亚洲免费观看在线观看| 国产亚洲综合色| 在线播放中文字幕一区| 91影院在线观看| 国产传媒日韩欧美成人| 蜜臀av性久久久久蜜臀av麻豆| 亚洲视频中文字幕| 欧美高清在线一区二区| 欧美不卡一区二区三区| 欧美乱妇15p| 91搞黄在线观看| av亚洲产国偷v产偷v自拍| 国产麻豆精品久久一二三| 日韩—二三区免费观看av| 亚洲一区在线视频| 日韩理论片一区二区| 国产精品毛片高清在线完整版| 久久一区二区视频| 2023国产精品| 精品国产电影一区二区| 欧美videos中文字幕| 91精品国模一区二区三区| 欧美日韩一区二区电影| 欧美亚洲日本一区| 在线亚洲高清视频| 91国产视频在线观看| 色老汉一区二区三区| 色欲综合视频天天天| 色94色欧美sute亚洲线路二| 99在线热播精品免费| 99久久精品久久久久久清纯| 北条麻妃国产九九精品视频| 国产精品一区二区在线观看不卡 | 欧美影视一区在线| 欧美三日本三级三级在线播放| 欧美中文字幕一区二区三区亚洲| 91麻豆免费视频| 91香蕉视频污在线| 欧美午夜不卡视频| 91精品欧美福利在线观看| 欧美一区二区三区四区高清 | 91官网在线免费观看| 欧美亚洲禁片免费| 欧美久久久久久蜜桃| 日韩精品自拍偷拍| 国产精品色一区二区三区| 中文字幕在线观看不卡视频| 亚洲女爱视频在线| 日本在线不卡一区| 国产乱码精品一区二区三区五月婷| 精品综合久久久久久8888| 国产一区二区在线影院| av一区二区不卡| 欧美在线观看18| 日韩欧美一区在线观看| 日本一区二区综合亚洲| 亚洲三级久久久| 青椒成人免费视频| 成人做爰69片免费看网站| 色婷婷综合久久久中文一区二区| 在线观看日产精品| 26uuu国产一区二区三区| 亚洲日本韩国一区| 麻豆精品在线观看| 色综合中文字幕国产 | 欧美精品一区二区三区久久久| 国产精品久久久久毛片软件| 亚洲图片欧美视频| 国产成人在线电影| 在线成人免费视频| 国产精品久久99| 免费高清在线视频一区·| 不卡一区二区三区四区| 3d动漫精品啪啪1区2区免费| 国产精品色在线观看| 蜜桃视频免费观看一区| 91年精品国产| 26uuu亚洲婷婷狠狠天堂| 亚洲国产一区二区三区| 国产99久久久久| 日韩一区二区高清| 一区二区三区在线观看欧美| 国产一区二区三区在线观看精品 | 欧美一区二区精品| 亚洲视频一二三区| 国产乱一区二区| 欧美精品久久一区二区三区| 亚洲私人影院在线观看| 国产精品99久| 日韩欧美中文字幕一区| 亚洲综合色婷婷| av成人免费在线观看| 久久久三级国产网站| 久久精品国产亚洲aⅴ| 欧美视频在线观看一区二区| 国产精品久久久久久一区二区三区| 日本va欧美va欧美va精品| 欧洲一区二区三区在线| 中文字幕在线视频一区| 粉嫩欧美一区二区三区高清影视| 日韩一区二区三区电影在线观看| 一区二区三国产精华液| 91农村精品一区二区在线| 欧美国产一区在线| 国产一区二区三区久久久| 日韩免费看的电影| 蜜臀99久久精品久久久久久软件| 欧美精品第1页| 秋霞成人午夜伦在线观看| 欧美性猛交xxxx黑人交|