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

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

?? emitter.c

?? 有想用的自己看吧
?? C
字號:
/* ---------------------------------------------------------------------- * FILE: emitter.c * PACKAGE: as31 - 8031/8051 Assembler. * * DESCRIPTION: *	This file contains the code to generate various *	object code formats. Provisions exist to *	support many types of output formats within the *	same executable. * * REVISION HISTORY: *	Jan. 19, 1990 - Created. (Ken Stauffer) *	Jan. 29, 1990 - Added S-records (Theo Deraadt) * * * AUTHOR: *	All code in this file written by Ken Stauffer (University of Calgary). *	January, 1990. */#include <stdio.h>/* ---------------------------------------------------------------------- * DECLARE your own open(), close(), addr(), and byte() routines here. * */static int open1(), close1(), addr1(), byte1();static int open2(), close2(), addr2(), byte2();static int open3(), close3(), addr3(), byte3();static int open4(), close4(), addr4(), byte4();/* ---------------------------------------------------------------------- * ADD an entry to this table to register your * output format routines. Give your object format * a name to be specified with the -F option. * */static int format;static struct {	char *name;	int (*e_open)();	int (*e_close)();	int (*e_addr)();	int (*e_byte)();} formtab[] = {	{ "tdr",   open1, close1, addr1, byte1 },	{ "byte",  open2, close2, addr2, byte2 },	{ "od",    open3, close3, addr3, byte3 },	{ "srec2", open4, close4, addr4, byte4 },	{ "srec3", open4, close4, addr4, byte4 },	{ "srec4", open4, close4, addr4, byte4 }};#define FORMTABSIZE	(sizeof(formtab)/sizeof(formtab[0]))emitusage(){	int i;	fprintf(stderr, "\tfmt is one of:");	for(i=0; i<FORMTABSIZE; ) {		fprintf(stderr, "%s", formtab[i].name);		if( ++i < FORMTABSIZE)			fprintf(stderr, ", ");	}	fprintf(stderr, ".\n");}emitopen(file,ftype,arg)char *file,*ftype,*arg;{	int i;	if( ftype ) {		for(i=0; i<FORMTABSIZE; i++ ) {			if( !strcmp(formtab[i].name,ftype) ) {				format = i;				(*formtab[format].e_open)(file,ftype,arg);				return;			}		}		fprintf(stderr, "warning: no format \"%s\", using \"%s\"\n",			ftype, formtab[0].name);	}	/*	 * 0th entry is the default format type	 */	format = 0;	(*formtab[format].e_open)(file,ftype,arg);}emitclose(){	(*formtab[format].e_close)();}emitaddr(a)unsigned long int a;{	(*formtab[format].e_addr)(a);}emitbyte(b)int b;{	(*formtab[format].e_byte)(b);}/* ---------------------------------------------------------------------- * Individual file format routines appear here: *	Each file format must define the following routines: *		open()	- Called ONCE before any of the others. *			It is passed with a filename and a format *			specific argument. * *		close() - Called ONCE when no more emit_byte() *			function calls will be made. * *		addr() - Called when ever a new address has been set *			in the assembler (ie. .org, .skip). *			This routine is also called once when the *			location counter is set to 0 at the very start of *			assembling. *  *		byte() - Called with each byte to be outputed. * *//* ---------------------------------------------------------------------- * "tdr" format. For tdr's 68008 system. Generates a * script file readable by a debugger. *	[addr] : [byte] [byte] .. * * arg: This is a number in decimal which specifies *	the offset, -Ftdr -A0000 * *	These options specifies the tdr format, with an argument *	of 0. This becomes the offset used in generating the *	script file. The default if no A is present is 0x10000. *  */static unsigned long addr;static FILE *fout;static long int offset;static int newaddr;static int pos=-666;static open1(file,ftype,arg)char *file, *ftype, *arg;{	fout = fopen(file,"w");	if( fout == NULL ) {		fprintf(stderr,"Cannot open %s for writting.\n",file);		exit(1);	}	if( arg ) {		offset = atoi(arg);	} else		offset = 0x10000;}static close1(){	if( pos != 15 ) fprintf(fout,"\n");	fclose(fout);}static addr1(a)unsigned long int a;{	addr = a;	newaddr = 1;}static byte1(b)unsigned char b;{	if( newaddr ) {		if( pos != -666 ) fprintf(fout,"\n");		newaddr = 0;		pos = 15;		fprintf(fout,"%06x: ",addr+offset);	} else if( pos == 15 ) {		fprintf(fout,"%06x: ",addr+offset);	}	fprintf(fout,"%02x ", b&0xff );	if( pos-- == 0 ) {		fprintf(fout,"\n");		pos = 15;	}	addr += 1;}/* ---------------------------------------------------------------------- * "byte" format. *	Like "tdr" but each byte is on a line by itself. *	This is nice for debugging. No -A is used. */static open2(file,ftype,arg)char *file, *ftype, *arg;{	fout = fopen(file,"w");	if( fout == NULL ) {		fprintf(stderr,"Cannot open %s for writting.\n",file);		exit(1);	}}static close2(){	fclose(fout);}static addr2(a)unsigned long int a;{	addr = a;}static byte2(b)unsigned char b;{	fprintf(fout,"%04x: %02x\n", addr, b&0xff );	addr += 1;}/* ---------------------------------------------------------------------- * "od", this format shows 16 bytes per line, with address. *	It also includes ascii on one side. * * The format is similar to the od(1) program under Unix. * */static int pos3;static unsigned char buf[16];static unsigned long saveaddr;static open3(file,ftype,arg)char *file, *arg;{	fout = fopen(file,"w");	if( fout == NULL ) {		fprintf(stderr,"Cannot open %s for writting.\n",file);		exit(1);	}}static close3(){	dumpline(saveaddr,buf,pos3-1);	fclose(fout);}static addr3(a)unsigned long int a;{	newaddr = 1;	addr = a;}static byte3(b)unsigned char b;{	if( newaddr ) {		dumpline(saveaddr,buf,pos3-1);		pos3 = 0;		newaddr = 0;		saveaddr = addr;	} else if( pos3 == 16 ) {		dumpline(saveaddr,buf,pos3-1);		pos3 = 0;		saveaddr = addr;	}	buf[pos3++] = b & 0x00ff;	addr += 1;}dumpline(a,b,len)unsigned long a;unsigned char *b;int len;{	int i;	if(len <= 0 ) return;	fprintf(fout,"%04x: ",a);	for(i=0; i<8; i++ ) {		if( i <= len )			fprintf(fout,"%02x ",b[i]);		else			fprintf(fout,"   ");	}	fprintf(fout,"- ");	for(i=8; i<16; i++ ) {		if( i <= len )			fprintf(fout,"%02x ",b[i]);		else			fprintf(fout,"   ");	}	fprintf(fout,"   ");	for(i=0; i<16; i++ ) {		if( i <= len )			fprintf(fout,"%c",				(b[i]>=' ' && b[i]<='~') ? b[i] : '.' );		else			break;	}	fprintf(fout,"\n");}/* ---------------------------------------------------------------------- * srecord format. This is called with "-Fsrec2", "-Fsrec3", or * "-Fsrec4"... * * arg: This is a number in decimal which specifies *	the offset, -Fsrec3 -A0000 * *	These options specifies the tdr format, with an argument *	of 0. This becomes the offset used in generating the *	script file. The default if no A is present is 0x0000. *  */#define SREC_BYTESPERLINE 32static char format4;static int check4, index4;static char buf4[SREC_BYTESPERLINE];static long address4;static open4(file,ftype,arg)char *file, *ftype, *arg;{	format4 = ftype[4];		/* will be '2' -- '4' */	fout = fopen(file,"w");	if( fout == NULL ) {		fprintf(stderr,"Cannot open %s for writing.\n",file);		exit(1);	}	if(arg)	offset = atoi(arg);	else	offset = 0;	fprintf(fout, "S0030000%02X\n", (~3 & 0xff) );}static close4(){	if(index4)		finishline();	switch(format4) {	case '2':		fprintf(fout, "S9030000%02X\n", ~3 & 0xff);		break;	case '3':		fprintf(fout, "S804000000%02X\n", ~4 & 0xff);		break;	case '4':		fprintf(fout, "S70500000000%02X\n", ~5 & 0xff);		break;	}	fclose(fout);}static addr4(a)unsigned long int a;{	if(index4>0)		finishline();	address4 = a + offset;}static byte4(b){	buf4[index4++] = b;	if(index4==SREC_BYTESPERLINE) {		finishline();		address4 += SREC_BYTESPERLINE;	}}finishline(){	int i;	check4 = index4 + (address4 & 0xff) + ((address4>>8) & 0xff) + 4;	switch(format4) {	case '2':		fprintf(fout, "S1%02X%04X", index4 + 4,	address4 & 0xffff);		break;	case '3':		fprintf(fout, "S2%02X%06X", index4 + 6, address4 & 0xffffff);		check4 += ((address4>>16) & 0xff) + 2;		break;	case '4':		fprintf(fout, "S3%02X%08X", index4 + 8, address4);		check4 += ((address4>>16) & 0xff) +((address4>>24) & 0xff) + 4;		break;	}	for(i=0; i<index4; i++) {		fprintf(fout, "%02X", buf4[i] & 0xff);		check4 += buf4[i];	}	fprintf(fout, "%02X\n", (~check4 & 0xff) );	index4 = 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合中文字幕| 亚洲主播在线观看| 国产一区二区不卡在线| 日韩欧美一级二级三级| 午夜视频在线观看一区二区三区 | 国产精品免费看片| 国产成人8x视频一区二区| 亚洲国产经典视频| 成人短视频下载| 亚洲欧美日韩小说| 欧美日韩国产一二三| 美女脱光内衣内裤视频久久网站 | av不卡免费在线观看| 亚洲精品视频自拍| 欧美日韩国产123区| 美脚の诱脚舐め脚责91 | 欧美在线综合视频| 日韩中文字幕91| 国产亚洲福利社区一区| av在线不卡电影| 亚洲成人av电影| 精品成人私密视频| 99精品视频免费在线观看| 亚洲综合色自拍一区| 日韩一区二区三区在线| 国产成人三级在线观看| 亚洲最新视频在线播放| 日韩免费电影网站| 99久久精品国产一区| 天堂一区二区在线免费观看| 国产午夜三级一区二区三| 色婷婷亚洲精品| 韩日av一区二区| 亚洲日本va午夜在线影院| 欧美电视剧在线观看完整版| caoporn国产精品| 青青草原综合久久大伊人精品| 国产亚洲一区二区三区四区| 色哟哟国产精品| 激情亚洲综合在线| 夜夜亚洲天天久久| 欧美极品xxx| 日韩精品在线一区二区| 91国产免费看| 顶级嫩模精品视频在线看| 午夜精品在线看| 综合久久久久久| 久久九九影视网| 日韩欧美国产一二三区| 欧美性猛交xxxxxx富婆| 成人性生交大片免费看视频在线| 日韩国产欧美三级| 国产精品久久久久久久久免费相片| 欧美放荡的少妇| 色www精品视频在线观看| 国产精品18久久久久| 日本欧美在线看| 一区二区理论电影在线观看| 国产亚洲女人久久久久毛片| 精品不卡在线视频| 91精品国产一区二区三区蜜臀 | 色婷婷国产精品| 成人性生交大片免费看中文网站| 激情综合色丁香一区二区| 午夜a成v人精品| 一区二区在线观看免费视频播放| 国产精品美女久久福利网站| 国产亚洲欧美日韩在线一区| 精品剧情在线观看| 欧美成人一区二区三区| 欧美色倩网站大全免费| 91小宝寻花一区二区三区| 成人免费毛片片v| 国产精品性做久久久久久| 伦理电影国产精品| 奇米一区二区三区av| 视频精品一区二区| 日韩有码一区二区三区| 亚洲一区国产视频| 亚洲精品高清视频在线观看| 亚洲欧美日韩一区二区| 一区二区三区四区不卡在线| 亚洲最快最全在线视频| 亚洲成人在线网站| 日韩av电影一区| 久久99九九99精品| 国产尤物一区二区| 国产大陆精品国产| 成人h精品动漫一区二区三区| 成人美女视频在线观看18| a在线播放不卡| 日本道色综合久久| 91精品国产综合久久香蕉麻豆| 欧美巨大另类极品videosbest| 91麻豆精品国产91久久久使用方法| 欧美一区二区视频网站| 欧美精品一区二区在线播放| 日本一二三不卡| 亚洲精品一二三区| 午夜电影网亚洲视频| 美国十次综合导航| 国产iv一区二区三区| 91蝌蚪porny成人天涯| 欧美日韩国产一级片| 日韩精品中午字幕| 国产精品美女久久久久aⅴ| 亚洲伊人色欲综合网| 美女任你摸久久| 国内精品免费**视频| 国产.欧美.日韩| 在线视频亚洲一区| 91精品国产综合久久久久久久| 久久新电视剧免费观看| 亚洲欧洲www| 日本欧美在线观看| 成人午夜激情影院| 欧美日韩精品三区| 国产婷婷一区二区| 一区二区三区四区不卡在线| 狠狠色丁香久久婷婷综合丁香| 91论坛在线播放| www激情久久| 亚洲已满18点击进入久久| 国产精品亚洲一区二区三区妖精 | 国产精品久久久久久久裸模| 日韩专区在线视频| 波多野结衣中文字幕一区 | 91 com成人网| 国产日韩精品一区二区三区在线| 亚洲午夜在线电影| 国产成人精品影视| 在线91免费看| 亚洲人成人一区二区在线观看| 免费精品视频在线| 日本高清无吗v一区| 国产日韩欧美综合一区| 日本美女一区二区三区视频| 天天色 色综合| 国产欧美精品一区| 美女国产一区二区| 欧美日韩国产中文| 一区二区在线电影| 不卡的av电影在线观看| 精品福利一二区| 日韩电影在线免费看| 97精品超碰一区二区三区| 久久久久久久精| 久久电影网电视剧免费观看| 欧美日韩国产另类不卡| 一区二区三区日韩欧美| 99久久精品一区| 国产精品久久久久久亚洲毛片 | 亚洲综合免费观看高清完整版| 国产成人午夜精品5599| 精品福利一区二区三区免费视频| 日韩国产欧美在线播放| 欧美日韩成人在线| 一区二区三区在线视频播放| 波多野结衣91| 国产精品毛片久久久久久久| 风间由美性色一区二区三区| 久久免费看少妇高潮| 另类人妖一区二区av| 日韩丝袜情趣美女图片| 日本系列欧美系列| 日韩一区二区免费视频| 日本sm残虐另类| 91精选在线观看| 日韩av午夜在线观看| 欧美一区二区三区四区久久 | 九九在线精品视频| 欧美精品丝袜久久久中文字幕| 亚洲国产日韩a在线播放性色| 91亚洲精华国产精华精华液| 亚洲另类中文字| 色视频成人在线观看免| 一二三四区精品视频| 欧美人与禽zozo性伦| 日本成人超碰在线观看| 欧美电影免费观看高清完整版在线 | 亚洲视频一区在线观看| www.欧美.com| 亚洲人成在线观看一区二区| 97超碰欧美中文字幕| 一区二区三区日本| 在线不卡a资源高清| 日韩av一级电影| 久久久一区二区| 不卡一区中文字幕| 综合激情成人伊人| 欧美吞精做爰啪啪高潮| 日韩av网站在线观看| 国产亚洲一区二区三区在线观看| a亚洲天堂av| 丝袜美腿亚洲色图| 久久综合av免费| 91免费国产在线| 午夜影院在线观看欧美| 日韩精品一区二区三区四区 | 亚洲国产精品国自产拍av|