⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crash66.c

📁 linux下编程用 编译软件
💻 C
字号:
// { dg-do assemble  }// { dg-options "-O" }// GROUPS passed old-aborttypedef unsigned char uchar;typedef unsigned short ushort;typedef unsigned long ulong;extern int swap_endian;			 inline ushortswapshort(ushort value){    value &= 0xffff;    return ((value << 8) | (value >> 8));}struct eshort{    ushort	data;			     operator ushort() { return swap_endian ? swapshort(data) : data;}    eshort(ushort t) { data = swap_endian ? swapshort(t) : t;}    eshort() {}};inline ulongswaplong(ulong value){    ulong v = (value << 16) | (value >> 16);    return ((v >> 8) & 0x00ff00ff) | ((v << 8) & 0xff00ff00);}struct elong{    ulong	data;			     operator ulong() { return swap_endian ? swaplong(data) : data;}    elong(ulong t) { data = swap_endian ? swaplong(t) : t; }    elong() {}};struct digiheader{    uchar	type[2];		     eshort	soft_version;		     eshort	lo_boot_rev;		     eshort	hi_boot_rev;		     eshort	load_segment;		     eshort	length;			     eshort	exec_start;		     eshort	image_offset;		     elong	startup_code[2];	     elong	checksum;		 };extern void uncompress(uchar* buf, ulong len);extern ulong compress(char* filename, uchar* buffer, ulong);struct filehdr{    eshort	f_magic;		     eshort	f_nscns;		     elong	f_timdat;		     elong	f_symptr;		     elong	f_nsyms;		     eshort	f_opthdr;		     eshort	f_flags;		 };struct aouthdr{    eshort	magic;			     eshort	vstamp;			     elong	tsize;			     elong	dsize;			     elong	bsize;			     elong	entry;			     elong	text_start;		     elong	data_start;		     elong	bss_start;		     elong	gprmask;		     elong	cprmask[4];		     elong	gp_value;		 };struct scnhdr{    char	s_name[8];		     elong	s_paddr;		     elong	s_vaddr;		     elong	s_size;			     elong	s_scnptr;		     elong	s_relptr;		     elong	s_lnnoptr;		     eshort	s_nreloc;		     eshort	s_nlnno;		     elong	s_flags;		 };int file_little_endian;			 int host_little_endian;			 int swap_endian;			 int docheck;				 int expand;				 ulong memsize;				 ulong compression_quality;		 char *compressfile;			 int debug_level;			 extern "C" int getopt (int, char**, char*);intmain(int argc, char** argv){    uchar checksum;    uchar docrc;    ulong len;    ulong maxlen;    int i;    int c;    int magic;    int tsize;    int dsize;    int quality;    char dummy;    uchar* code;    uchar* buf;    char* ap;    digiheader *dh;    compression_quality = 10000;    docheck = 0;    while ((c = getopt(argc, argv, "Ccdf:k:q:x:")) != -1)    {	switch (c)	{	default:	    goto usage;	}    }    if ((expand && (docheck || compressfile || quality)) ||	(quality && !compressfile))    {    usage:	return(2);    }    if (compressfile)    {	dh->image_offset = len;		len += compress(compressfile, code + len, maxlen - len);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -