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

📄 store.c

📁 《虚拟机的设计与实现c/cpp》(win32平台)源码 好东西大家熟知不多说
💻 C
字号:
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+                                                                   +
+  store.c - this file implements store instructions                +
+				SB, SW, SD, SQ, SF1, SF2                            +
+                                                                   +
+                                                                   +
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

/*
	SB $r1, $r2 ->  BBB 

	$r1 = where byte is stored
	$r2 = address where we want to place byte
*/


#define HANDLE_SB();	DBG_RUN0("Optimized HANDLE_SB\n"); \
						badAddress(R[RAM[R[$IP]+2]],R[$IP]);\
	                    RAM[R[RAM[R[$IP]+2]]] = (S1)R[RAM[R[$IP]+1]];\
						R[$IP] = R[$IP]+3;\

/*-----------------------------------------------------------------*/


#define HANDLE_SW();	DBG_RUN0("Optimized HANDLE_SW\n");\
						badAddress(R[RAM[R[$IP]+2]],R[$IP]);\
	                    *((S2*)&RAM[R[RAM[R[$IP]+2]]] ) = (S2)R[RAM[R[$IP]+1]];\
						R[$IP] = R[$IP]+3;

/*-----------------------------------------------------------------*/


#define HANDLE_SD();	DBG_RUN0("Optimized HANDLE_SD\n");\
						badAddress(R[RAM[R[$IP]+2]],R[$IP]);\
	                    *((S4*)&RAM[R[RAM[R[$IP]+2]]] ) = (S4)R[RAM[R[$IP]+1]];\
						R[$IP] = R[$IP]+3;

/*-----------------------------------------------------------------*/


#define HANDLE_SQ();	DBG_RUN0("Optimized HANDLE_SQ\n");\
						badAddress(R[RAM[R[$IP]+2]],R[$IP]);\
	                    *((S8*)&RAM[R[RAM[R[$IP]+2]]] ) = (S8)R[RAM[R[$IP]+1]];\
						R[$IP] = R[$IP]+3;

/*-----------------------------------------------------------------*/

/* SF1 $f, $r */

#define HANDLE_SF1();	DBG_RUN0("Optimized HANDLE_SF1\n");\
						badAddress(R[RAM[R[$IP]+2]],R[$IP]);\
	                    *((F4*)&RAM[R[RAM[R[$IP]+2]]] ) = Rf[RAM[R[$IP]+1]];\
						R[$IP] = R[$IP]+3;

/*-----------------------------------------------------------------*/

/* SF2 $d, $r */

#define HANDLE_SF2();	DBG_RUN0("Optimized HANDLE_SF2\n");\
						badAddress(R[RAM[R[$IP]+2]],R[$IP]);\
	                    *((F8*)&RAM[R[RAM[R[$IP]+2]]] ) = Rd[RAM[R[$IP]+1]];\
						R[$IP] = R[$IP]+3;

⌨️ 快捷键说明

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