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

📄 out.h

📁 坦尼保姆
💻 H
字号:
/* * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. * See the copyright notice in the ACK home directory, in the file "Copyright". *//* $Id: out.h,v 2.7 1994/06/24 10:08:39 ceriel Exp $ */#ifndef __OUT_H_INCLUDED#define __OUT_H_INCLUDED/* * output format for ACK assemblers */struct outhead {	unsigned short 	oh_magic;	/* magic number */	unsigned short 	oh_stamp;	/* version stamp */	unsigned short	oh_flags;	/* several format flags */	unsigned short	oh_nsect;	/* number of outsect structures */	unsigned short	oh_nrelo;	/* number of outrelo structures */	unsigned short	oh_nname;	/* number of outname structures */	long	oh_nemit;		/* sum of all os_flen */	long	oh_nchar;		/* size of string area */};#define O_MAGIC	0x0201			/* magic number of output file */#define	O_STAMP	0			/* version stamp */#define MAXSECT	64			/* Maximum number of sections */#define	HF_LINK	0x0004			/* unresolved references left */#define	HF_8086	0x0008			/* os_base specially encoded */struct outsect {	long 	os_base;		/* startaddress in machine */	long	os_size;		/* section size in machine */	long	os_foff;		/* startaddress in file */	long	os_flen;		/* section size in file */	long	os_lign;		/* section alignment */};struct outrelo {	char	or_type;		/* type of reference */	char	or_sect;		/* referencing section */	unsigned short	or_nami;	/* referenced symbol index */	long	or_addr;		/* referencing address */};struct outname {	union {	  char	*on_ptr;		/* symbol name (in core) */	  long	on_off;			/* symbol name (in file) */	}	on_u;#define on_mptr	on_u.on_ptr#define on_foff	on_u.on_off	unsigned short	on_type;	/* symbol type */	unsigned short	on_desc;	/* debug info */	long	on_valu;		/* symbol value */};/* * relocation type bits */#define RELSZ	0x07			/* relocation length */#define RELO1	   1			/* 1 byte */#define RELO2	   2			/* 2 bytes */#define RELO4	   4			/* 4 bytes */#define RELPC	0x08			/* pc relative */#define RELBR	0x10			/* High order byte lowest address. */#define RELWR	0x20			/* High order word lowest address. *//* * section type bits and fields */#define S_TYP	0x007F			/* undefined, absolute or relative */#define S_EXT	0x0080			/* external flag */#define S_ETC	0x7F00			/* for symbolic debug, bypassing 'as' *//* * S_TYP field values */#define S_UND	0x0000			/* undefined item */#define S_ABS	0x0001			/* absolute item */#define S_MIN	0x0002			/* first user section */#define S_MAX	(S_TYP-1)		/* last user section */#define S_CRS	S_TYP			/* on_valu is symbol index which contains value *//* * S_ETC field values */#define S_SCT	0x0100			/* section names */#define S_LIN	0x0200			/* hll source line item */#define S_FIL	0x0300			/* hll source file item */#define S_MOD	0x0400			/* ass source file item */#define S_COM	0x1000			/* Common name. */#define S_STB	0xe000			/* entries with any of these bits set are					   reserved for debuggers					*//* * structure format strings */#define SF_HEAD		"22222244"#define SF_SECT		"44444"#define SF_RELO		"1124"#define SF_NAME		"4224"/* * structure sizes (bytes in file; add digits in SF_*) */#define SZ_HEAD		20#define SZ_SECT		20#define SZ_RELO		8#define SZ_NAME		12/* * file access macros */#define BADMAGIC(x)	((x).oh_magic!=O_MAGIC)#define OFF_SECT(x)	SZ_HEAD#define OFF_EMIT(x)	(OFF_SECT(x) + ((long)(x).oh_nsect * SZ_SECT))#define OFF_RELO(x)	(OFF_EMIT(x) + (x).oh_nemit)#define OFF_NAME(x)	(OFF_RELO(x) + ((long)(x).oh_nrelo * SZ_RELO))#define OFF_CHAR(x)	(OFF_NAME(x) + ((long)(x).oh_nname * SZ_NAME))#endif /* __OUT_H_INCLUDED */

⌨️ 快捷键说明

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