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

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

?? outas68.c

?? C語言編譯器的源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
                outcol = 0;
                gentype = nogen;
                }
			 if (phiused && !phiput)
								fputc(0x1f,outputFile);
		 }
}
/* Put an opcode
 */
void outop(char *name)
{
	fputc('\t',outputFile);
	while (*name)
		fputc(toupper(*name++),outputFile);
}
void putop(int op)
{       
	if (op > op_ftwotox)
    DIAG("illegal opcode.");
	else
		outop(oplst[op].word);
}

void putconst(ENODE *offset)
/*
 *      put a constant to the outputFile file.
 */
{       switch( offset->nodetype )
                {
								case en_autoreg:
                case en_autocon:
                case en_icon:
                case en_lcon:
                case en_iucon:
                case en_lucon:
                case en_ccon:
								case en_absacon:
                        fprintf(outputFile,"$%lX",offset->v.i);
												break;
								case en_rcon:
								case en_fcon:
								case en_lrcon:
												fprintf(outputFile,"%f",offset->v.f);
												break;
                case en_labcon:
                case en_nalabcon:
                        fprintf(outputFile,"L_%ld",offset->v.i);
                        break;
								case en_napccon:
                case en_nacon:
                        fprintf(outputFile,"%s",offset->v.p[0]);
                        break;
                case en_add:
                        putconst(offset->v.p[0]);
                        fprintf(outputFile,"+");
                        putconst(offset->v.p[1]);
                        break;
                case en_sub:
                        putconst(offset->v.p[0]);
                        fprintf(outputFile,"-");
                        putconst(offset->v.p[1]);
                        break;
                case en_uminus:
                        fprintf(outputFile,"-");
                        putconst(offset->v.p[0]);
                        break;
                default:
                        DIAG("illegal constant node.");
                        break;
                }
}
void putlen(int l)
/*
 *      append the length field to an instruction.
 */
{       switch( l )
                {
                case 0:
                        break;  /* no length field */
                case 1:
                        fprintf(outputFile,".B");
                        break;
                case 2:
                        fprintf(outputFile,".W");
                        break;
                case 4:
                        fprintf(outputFile,".L");
                        break;
								case 6:
												fprintf(outputFile,".S");
												break;
								case 8:
												fprintf(outputFile,".D");
												break;
								case 10:
												fprintf(outputFile,".X");
												break;
                default:
                        DIAG("illegal length field.");
                        break;
                }
}

void putamode(AMODE *ap)
/*
 *      outputFile a general addressing mode.
 */
{       int scale,t;
				switch( ap->mode )
                {
								case am_sr:
												fprintf(outputFile, "SR");
												break;
								case am_bf:
												fprintf(outputFile," {%d:%d}",ap->preg,ap->sreg);
												break;
								case am_divsl:
												fprintf(outputFile,"D%d:D%d",ap->preg, ap->sreg);
												break;
                case am_immed:
                        fprintf(outputFile,"#");
                case am_direct:
                        putconst(ap->offset);
                        break;
                case am_adirect:
												fputc('(',outputFile);
                        putconst(ap->offset);
												fputc(')',outputFile);
												putlen(ap->preg);
                        break;
                case am_areg:
                        fprintf(outputFile,"A%d",ap->preg);
                        break;
                case am_dreg:
                        fprintf(outputFile,"D%d",ap->preg);
                        break;
								case am_freg:
												fprintf(outputFile,"FP%d",ap->preg);
												break;
                case am_ind:
                        fprintf(outputFile,"(A%d)",ap->preg);
                        break;
                case am_ainc:
                        fprintf(outputFile,"(A%d)+",ap->preg);
                        break;
                case am_adec:
                        fprintf(outputFile,"-(A%d)",ap->preg);
                        break;
                case am_indx:
                        fprintf(outputFile,"(");
                        putconst(ap->offset);
                        fprintf(outputFile,",A%d)",ap->preg);
                        break;
								case am_pcindx:
                        fprintf(outputFile,"(");
                        putconst(ap->offset);
                        fprintf(outputFile,",PC)");
                        break;
                case am_baseindxdata:
												scale = 1;
												t = ap->scale;
												while (t--)
													scale <<=1;
                        fprintf(outputFile,"(");
                        putconst(ap->offset);
												if (ap->preg != -1)
                        	fprintf(outputFile,",A%d",ap->preg);
                        fprintf(outputFile,",D%d.L",ap->sreg);
												if (scale != 1)
													fprintf(outputFile,"*%d",scale);
												fputc(')', outputFile);
                        break;
                case am_baseindxaddr:
												scale = 1;
												t = ap->scale;
												while (t--)
													scale <<=1;
                        fprintf(outputFile,"(");
                        putconst(ap->offset);
												if (ap->preg != -1)
                        	fprintf(outputFile,",A%d",ap->preg);
                        fprintf(outputFile,",A%d.L",ap->sreg);
												if (scale != 1)
													fprintf(outputFile,"*%d",scale);
												fputc(')', outputFile);
                        break;
                case am_mask:
                        put_mask((int)ap->offset, ap->preg);
                        break;
								case am_fmask:
                        put_fmask((int)ap->offset, ap->preg);
                        break;
                default:
                        DIAG("illegal address mode.");
                        break;
                }
}

void put_code(OCODE *cd)
/*
 *      outputFile a generic instruction.
 */
{    
		int op = cd->opcode,len = cd->length;
		AMODE *aps = cd->oper1,*apd = cd->oper2, *ape = cd->oper3;   
		nl();
		if (!prm_asmfile)	{
			;/* oc_putop(cd); */
			return;
		}
		if (op == op_line) {
			if (!prm_lines)
				return;
			fprintf(outputFile,";\n; Line %d:\t%s\n;\n",len,(char *)aps);
			return;
		}
		if (op == op_slit) {
								int l =genstring((char *)cd->oper1,(int)cd->oper2);
								if ((int)cd->oper2)
									genword(0);
								else {
									if (!(l & 1))
										genbyte(0);
									genbyte(0);
								}
								return;
		}
		if( op == op_dcl)
		{
			putop(op);
			putlen(len);
      fprintf(outputFile,"\t");
			putamode(aps);
			if (prm_rel)
				fprintf(outputFile,"-*");
      fprintf(outputFile,"\n");
			return;
		}
	else
		{	
			putop(op);
     	putlen(len);
		}
    if( aps != 0 )
    {
      fprintf(outputFile,"\t");
			putamode(aps);
      if( apd != 0 )
      {
				if (apd->mode != am_bf)
          fprintf(outputFile,",");
        putamode(apd);
				if (ape) {
					if (ape->mode != am_bf)
						fprintf(outputFile,",");
					putamode(ape);
				}
      }
    }
  fprintf(outputFile,"\n");
}

void put_fmask(int mask, int reverse)
/*
 *      generate a register mask for floating restore and save.
 */
{
				unsigned put = FALSE,i,bit;
				if (!reverse) {
					bit = 0x80;
					for (i=0; i < 8; i++) {
						if (bit & (unsigned) mask) {
							if (put)
								fputc('/', outputFile);
							put = TRUE;
							putreg(i+16);
						}
		 				bit >>= 1;
					}
			
				}
				else{
 					bit = 1;
					for (i=0; i < 8; i++) {
						if (bit & (unsigned)mask) {
							if (put)
								fputc('/', outputFile);
							put = TRUE;
							putreg(i+16);
						}
						bit <<= 1;
					}
				}
}
void put_mask(int mask, int reverse)
/*
 *      generate a register mask for integer restore and save.
 */
{
				unsigned put = FALSE,i,bit;
				if (!reverse) {
					bit = 0x8000;
					for (i=0; i < 16; i++) {
						if (bit & (unsigned) mask) {
							if (put)
								fputc('/', outputFile);
							put = TRUE;
							putreg(i);
						}
		 				bit >>= 1;
					}
			
				}
				else{
 					bit = 1;
					for (i=0; i < 16; i++) {
						if (bit & (unsigned)mask) {
							if (put)
								fputc('/', outputFile);
							put = TRUE;
							putreg(i);
						}
						bit <<= 1;
					}
				}
}

void putreg(int r)
/*
 *      generate a register name from a tempref number.
 */
{       if( r < 8 )
                fprintf(outputFile,"D%d",r);
        else if (r <16)
                fprintf(outputFile,"A%d",r - 8);
				else fprintf(outputFile,"FP%d",r-16);
}

void gen_strlab(SYM *sp)
/*
 *      generate a named label.
 */
{
		datasp = sp;
		if (prm_asmfile) {
				nl();
				if (curseg == codeseg && currentfunc->pascaldefn) {
					char buf[100],*q=buf,*p=sp->name;
					if (prm_cmangle)
						p++;
					while(*p)
						*q++=toupper(*p++);
					*q++ = 0;
        	fprintf(outputFile,"%s:\n",buf);
				}
				else
        	fprintf(outputFile,"%s:\n",sp->name);
		}
		else
			;/* oc_namedlab(sp); */
		dataofs = 0;
}

void put_label(OCODE *cd)
/*
 *      outputFile a compiler generated label.
 */
{
       	if (prm_asmfile) {
					nl();
					fprintf(outputFile,"L_%ld:\n",(long)(cd->oper1));
				}
				else
					;/* oc_unnamedlab(cd); */
}
void put_staticlabel(long label)
{
				if (prm_asmfile) {
					nl();
					fprintf(outputFile,"L_%ld:\n",label);
				}
}

void genfloat(float val)
/*
 * Output a float value
 */
{ 		if (prm_asmfile)
        if( gentype == floatgen && outcol < 60) {
                fprintf(outputFile,",%f",val);
                outcol += 8;
                }
        else    {
                nl();
                fprintf(outputFile,"\tDC.S\t%f",val);
                gentype = floatgen;
                outcol = 19;
                }
			else
				;/* oc_genfloat(val); */
	dataofs+=4;
}

void gendouble(double val)
/*
 * Output a double value
 */
{ 		if (prm_asmfile)
        if( gentype == doublegen && outcol < 60) {
                fprintf(outputFile,",%f",val);
                outcol += 8;
                }
        else    {
                nl();
                fprintf(outputFile,"\tDC.D\t%f",val);
                gentype = doublegen;
                outcol = 19;
                }
			else
				;/* oc_gendouble(val); */
	dataofs+=8;
}
void genlongdouble(long double val)
/*
 * Output a double value
 */
{ 		if (prm_asmfile)
        if( gentype == longdoublegen && outcol < 60) {
                fprintf(outputFile,",%f",val);
                outcol += 8;
                }
        else    {
                nl();
                fprintf(outputFile,"\tDT\t%f",val);
                gentype = longdoublegen;
                outcol = 19;
                }
			else

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
777午夜精品免费视频| 亚洲精品免费在线播放| 国产精品色哟哟| 午夜a成v人精品| 国产99久久久久| 91 com成人网| 亚洲一区二区在线观看视频| 国产二区国产一区在线观看| 欧美片在线播放| 国产精品久久久久精k8| 美女视频黄频大全不卡视频在线播放 | 国产精品黄色在线观看| 热久久国产精品| 欧美性猛交xxxx黑人交| 中文字幕一区视频| 国产日韩av一区二区| 亚洲中国最大av网站| 久久综合九色综合97_久久久| 亚洲综合小说图片| www.日韩av| 精品免费日韩av| 琪琪一区二区三区| 亚洲午夜羞羞片| 在线看不卡av| 看电视剧不卡顿的网站| 国产精品日韩成人| 精品视频一区二区不卡| 久久99九九99精品| 亚洲欧美日韩一区二区三区在线观看| 欧美性生活久久| 激情小说亚洲一区| 有坂深雪av一区二区精品| 欧美一区二区三区视频在线| 国产成人精品免费看| 亚洲成人动漫在线免费观看| 久久人人97超碰com| 欧美影视一区二区三区| 国产一区二区不卡| 天天色综合成人网| 一区在线观看免费| 久久色.com| 欧美疯狂做受xxxx富婆| 成人午夜av在线| 青青草国产成人av片免费| 亚洲欧洲三级电影| 精品乱人伦小说| 欧美精品xxxxbbbb| 91丨porny丨蝌蚪视频| 精品伊人久久久久7777人| 亚洲永久免费av| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 国产成人三级在线观看| 日韩影院免费视频| 亚洲免费在线播放| 国产精品入口麻豆九色| 亚洲精品一区二区在线观看| 精品1区2区3区| 9人人澡人人爽人人精品| 国产一区二区三区观看| 美女在线一区二区| 性久久久久久久久久久久 | 一区二区免费看| 国产精品丝袜一区| 久久亚洲一区二区三区明星换脸| 6080午夜不卡| 欧美日韩在线综合| 欧美视频一区在线观看| 欧美丝袜自拍制服另类| 色综合久久中文综合久久97 | 亚洲视频网在线直播| 欧美国产乱子伦| 欧美韩国日本不卡| 国产女人aaa级久久久级| 久久久久久久久一| 久久久久国产精品人| 欧美不卡在线视频| 2020日本不卡一区二区视频| 日韩精品最新网址| 精品久久人人做人人爰| 精品国产免费人成电影在线观看四季 | 亚洲大片免费看| 亚洲va国产天堂va久久en| 亚洲自拍另类综合| 亚洲a一区二区| 日韩成人免费电影| 蜜臀精品久久久久久蜜臀| 日韩影院免费视频| 麻豆精品视频在线观看| 久久福利资源站| 国产呦精品一区二区三区网站| 黑人巨大精品欧美黑白配亚洲| 九一久久久久久| 国产一区二区三区免费看 | 91猫先生在线| 欧美性大战久久久久久久蜜臀| 欧美天堂亚洲电影院在线播放| 欧美日韩一区高清| 日韩三级精品电影久久久| 精品国产sm最大网站免费看| 国产午夜精品在线观看| 国产精品久久看| 亚洲成人资源在线| 久久er精品视频| 成人一级黄色片| 在线视频亚洲一区| 91精品国产综合久久国产大片| 欧美成人官网二区| 国产精品免费av| 亚洲午夜一区二区| 国产一区二区电影| 91亚洲永久精品| 91精品国产品国语在线不卡| 精品国产一区二区国模嫣然| 国产精品久久久久久一区二区三区 | 91精品综合久久久久久| 欧美大尺度电影在线| 国产精品麻豆欧美日韩ww| 亚洲永久免费视频| 国产在线视频精品一区| 成人动漫中文字幕| 在线成人av网站| 欧美极品aⅴ影院| 亚洲大片免费看| 丁香一区二区三区| 欧美伦理电影网| 国产精品久久看| 久久精品免费观看| 欧美在线视频不卡| 国产亚洲欧美中文| 日韩av一区二区在线影视| 成人激情av网| 欧美不卡激情三级在线观看| 亚洲中国最大av网站| 国产91丝袜在线观看| 欧美一级爆毛片| 亚洲激情欧美激情| 成人少妇影院yyyy| 欧美mv和日韩mv国产网站| 亚洲一卡二卡三卡四卡五卡| www.66久久| xfplay精品久久| 免费在线观看精品| 欧美疯狂性受xxxxx喷水图片| 最新欧美精品一区二区三区| 国产一区不卡视频| 91麻豆精品国产91久久久久久久久| 国产精品嫩草99a| 激情另类小说区图片区视频区| 欧美色视频一区| 一区二区久久久久久| 99在线精品观看| 国产精品美女久久久久久久久久久 | 成人高清在线视频| 日韩视频一区二区在线观看| 亚洲国产成人av网| av在线不卡电影| 亚洲精品在线观看网站| 免费成人在线观看| 欧美日韩在线免费视频| 国产精品久久久久国产精品日日| 久久精品免费看| 欧美xingq一区二区| 亚洲不卡av一区二区三区| 色综合久久久久综合99| 国产日韩影视精品| 国产成人午夜片在线观看高清观看| 欧美高清一级片在线| 一区二区三区日本| 国产一区二区福利视频| 久久久亚洲精华液精华液精华液| 天堂资源在线中文精品| 色狠狠av一区二区三区| 国产亲近乱来精品视频| 国产成人自拍网| 久久综合狠狠综合| 激情六月婷婷久久| 日韩欧美一级在线播放| 美国av一区二区| 欧美高清视频www夜色资源网| 自拍av一区二区三区| 狠狠色丁香九九婷婷综合五月| 精品欧美一区二区在线观看| 亚洲1区2区3区视频| 欧洲国产伦久久久久久久| 亚洲精品伦理在线| 色猫猫国产区一区二在线视频| 亚洲嫩草精品久久| 欧美性色aⅴ视频一区日韩精品| 一区二区三区波多野结衣在线观看 | 中文字幕av一区二区三区免费看| 久久99精品国产91久久来源| 久久嫩草精品久久久精品| 国产精品一区二区黑丝| 久久久欧美精品sm网站| 99re免费视频精品全部| 亚洲毛片av在线| 欧美日韩一区视频| 麻豆久久一区二区| 中文字幕亚洲电影| 日本韩国欧美国产|