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

📄 enenv.h

📁 简单的虚拟机
💻 H
字号:
/* memory available: 1M bytes */#include <stdbool.h>#define AVAILMEM	0xFFFFF#define SIGNATURE	0x5A4Dtypedef char byte;typedef unsigned short word;typedef unsigned int dword;#define FLAG_C 0x0001#define FLAG_P 0x0004#define FLAG_A 0x0010#define FLAG_Z 0x0040#define FLAG_S 0x0080#define FLAG_T 0x0100#define FLAG_I 0x0200#define FLAG_D 0x0400#define FLAG_O 0x0800struct general_reg{	word	ax;	word	cx;	word	dx;	word	bx;	word	sp;	word	bp;	word	si;	word	di;};struct segment_reg{	word	es;	word	cs;	word	ss;	word	ds;	word	fs;	word	gs;};struct CPU{	struct general_reg greg;	struct segment_reg sreg;	word	ip;	int	flags;	bool	status;	byte*	ram;};#define greg16_addr(index) ((word*)(&cpu.greg)+(index))#define greg8_addr(index) ((byte*)(&cpu.greg)+((index&4)?((index&3)*2+1):(index*2)))#define sreg_addr(index) ((word*)(&cpu.sreg)+(index))/*   struct PSP   {   word	int20;   word	memavail;   dword	int22;   dword	int23;   dword	int24;   word	env;   word	int21;   byte	retf;   byte	fmtcmd1[16];   byte	fmtcmd2[16];   byte	cmdlen;   byte	unfmtcmd[127];   }; */struct CPU cpu;

⌨️ 快捷键说明

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