Index: trunk/abdev/BasicCompiler32/Compile_Calc_PushVar.cpp
===================================================================
--- trunk/abdev/BasicCompiler32/Compile_Calc_PushVar.cpp	(revision 206)
+++ trunk/abdev/BasicCompiler32/Compile_Calc_PushVar.cpp	(revision 225)
@@ -1,3 +1,5 @@
 #include "stdafx.h"
+
+#include <Compiler.h>
 
 #include "../BasicCompiler_Common/common.h"
@@ -8,5 +10,5 @@
 		if(pRelativeVar->bOffsetOffset){
 			//fld ptr[ecx+offset]
-			op_fld_base_offset(type,REG_ECX,(int)pRelativeVar->offset);
+			compiler.codeGenerator.op_fld_base_offset(type,REG_ECX,(int)pRelativeVar->offset);
 			obp-=sizeof(long);
 			pobj_GlobalVarSchedule->add();
@@ -15,5 +17,5 @@
 		else{
 			//mov ecx,offset
-			op_mov_RV(REG_ECX,(int)pRelativeVar->offset);
+			compiler.codeGenerator.op_mov_RV(REG_ECX,(int)pRelativeVar->offset);
 			obp-=sizeof(long);
 			pobj_GlobalVarSchedule->add();
@@ -21,5 +23,5 @@
 
 			//fld ptr[ecx]
-			op_fld_basereg(type,REG_ECX);
+			compiler.codeGenerator.op_fld_basereg(type,REG_ECX);
 		}
 	}
@@ -30,5 +32,5 @@
 		if(pRelativeVar->bOffsetOffset){
 			//fld ptr[ebp+ecx+offset]
-			op_fld_base_offset_ex(type,REG_EBP,REG_ECX,(int)pRelativeVar->offset,USE_OFFSET);
+			compiler.codeGenerator.op_fld_base_offset_ex(type,REG_EBP,REG_ECX,(int)pRelativeVar->offset,USE_OFFSET);
 			obp-=sizeof(long);
 			AddLocalVarAddrSchedule();
@@ -37,5 +39,5 @@
 		else{
 			//fld ptr[ebp+offset]
-			op_fld_base_offset(type,REG_EBP,(int)pRelativeVar->offset);
+			compiler.codeGenerator.op_fld_base_offset(type,REG_EBP,(int)pRelativeVar->offset);
 			obp-=sizeof(long);
 			AddLocalVarAddrSchedule();
@@ -46,5 +48,5 @@
 		if(pRelativeVar->bOffsetOffset){
 			//add ecx,qword ptr[ebp+offset]
-			op_add_RM(sizeof(long),REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32);
+			compiler.codeGenerator.op_add_RM(sizeof(long),REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32);
 			obp-=sizeof(long);
 			AddLocalVarAddrSchedule();
@@ -53,5 +55,5 @@
 		else{
 			//mov ecx,qword ptr[ebp+offset]
-			op_mov_RM(sizeof(long),REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32);
+			compiler.codeGenerator.op_mov_RM(sizeof(long),REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32);
 			obp-=sizeof(long);
 			AddLocalVarAddrSchedule();
@@ -64,5 +66,5 @@
 directmem:
 		//fld ptr[ecx]
-		op_fld_basereg(type,REG_ECX);
+		compiler.codeGenerator.op_fld_basereg(type,REG_ECX);
 	}
 }
@@ -96,9 +98,9 @@
 		if(pRelativeVar->bOffsetOffset){
 			//mov reg, ptr[ecx+offset]
-			op_mov_RM(varSize,reg,REG_ECX,(int)pRelativeVar->offset + offsetOf64Head,MOD_BASE_DISP32);
+			compiler.codeGenerator.op_mov_RM(varSize,reg,REG_ECX,(int)pRelativeVar->offset + offsetOf64Head,MOD_BASE_DISP32);
 		}
 		else{
 			//mov reg, ptr[offset]
-			op_mov_RM(varSize,reg,0,(int)pRelativeVar->offset + offsetOf64Head,MOD_DISP32);
+			compiler.codeGenerator.op_mov_RM(varSize,reg,0,(int)pRelativeVar->offset + offsetOf64Head,MOD_DISP32);
 		}
 		obp-=sizeof(long);
@@ -109,9 +111,9 @@
 		if(pRelativeVar->bOffsetOffset){
 			//add ecx,qword ptr[offset]
-			op_add_RM(varSize,REG_ECX,REG_NON,(int)pRelativeVar->offset,MOD_DISP32);
+			compiler.codeGenerator.op_add_RM(varSize,REG_ECX,REG_NON,(int)pRelativeVar->offset,MOD_DISP32);
 		}
 		else{
 			//mov ecx,qword ptr[offset]
-			op_mov_RM(varSize,REG_ECX,REG_NON,(int)pRelativeVar->offset,MOD_DISP32);
+			compiler.codeGenerator.op_mov_RM(varSize,REG_ECX,REG_NON,(int)pRelativeVar->offset,MOD_DISP32);
 		}
 		obp-=sizeof(long);
@@ -124,9 +126,9 @@
 		if(pRelativeVar->bOffsetOffset){
 			//mov reg, ptr[ebp+ecx+offset]
-			op_mov_RM_ex(varSize,reg,REG_EBP,REG_ECX,(int)pRelativeVar->offset + offsetOf64Head,USE_OFFSET);
+			compiler.codeGenerator.op_mov_RM_ex(varSize,reg,REG_EBP,REG_ECX,(int)pRelativeVar->offset + offsetOf64Head,USE_OFFSET);
 		}
 		else{
 			//mov reg, ptr[ebp+offset]
-			op_mov_RM(varSize,reg,REG_EBP,(int)pRelativeVar->offset + offsetOf64Head,MOD_BASE_DISP32);
+			compiler.codeGenerator.op_mov_RM(varSize,reg,REG_EBP,(int)pRelativeVar->offset + offsetOf64Head,MOD_BASE_DISP32);
 		}
 		obp-=sizeof(long);
@@ -137,9 +139,9 @@
 		if(pRelativeVar->bOffsetOffset){
 			//add ecx,qword ptr[ebp+offset]
-			op_add_RM(varSize,REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32);
+			compiler.codeGenerator.op_add_RM(varSize,REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32);
 		}
 		else{
 			//mov ecx,qword ptr[ebp+offset]
-			op_mov_RM(varSize,REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32);
+			compiler.codeGenerator.op_mov_RM(varSize,REG_ECX,REG_EBP,(int)pRelativeVar->offset,MOD_BASE_DISP32);
 		}
 		obp-=sizeof(long);
@@ -153,9 +155,9 @@
 		if( is64Head ){
 			//mov reg, ptr[ecx]
-			op_mov_RM(varSize,reg,REG_ECX,offsetOf64Head,MOD_BASE_DISP8);
+			compiler.codeGenerator.op_mov_RM(varSize,reg,REG_ECX,offsetOf64Head,MOD_BASE_DISP8);
 		}
 		else{
 			//mov reg, ptr[ecx]
-			op_mov_RM(varSize,reg,REG_ECX,0,MOD_BASE);
+			compiler.codeGenerator.op_mov_RM(varSize,reg,REG_ECX,0,MOD_BASE);
 		}
 	}
@@ -164,16 +166,7 @@
 
 
-
-
-void PushDoubleVariable(RELATIVE_VAR *pRelativeVar){
+void PushLongVariable(RELATIVE_VAR *pRelativeVar){
 	if(pRelativeVar->dwKind==VAR_GLOBAL){
 		if(pRelativeVar->bOffsetOffset){
-			//push dword ptr[ecx+offset+sizeof(long)]
-			OpBuffer[obp++]=(char)0xFF;
-			OpBuffer[obp++]=(char)0xB1;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset+sizeof(long);
-			pobj_GlobalVarSchedule->add();
-			obp+=sizeof(long);
-
 			//push dword ptr[ecx+offset]
 			OpBuffer[obp++]=(char)0xFF;
@@ -184,11 +177,4 @@
 		}
 		else{
-			//push dword ptr[offset+sizeof(long)]
-			OpBuffer[obp++]=(char)0xFF;
-			OpBuffer[obp++]=(char)0x35;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset+sizeof(long);
-			pobj_GlobalVarSchedule->add();
-			obp+=sizeof(long);
-
 			//push dword ptr[offset]
 			OpBuffer[obp++]=(char)0xFF;
@@ -200,40 +186,36 @@
 	}
 	else if(pRelativeVar->dwKind==VAR_REFGLOBAL){
-		SetError(300,NULL,cp);
+		//mov eax,dword ptr[offset]
+		compiler.codeGenerator.op_mov_RM( sizeof(long), REG_EAX, REG_NON, (int)pRelativeVar->offset, MOD_DISP32 );
+		obp-=sizeof(long);
+		pobj_GlobalVarSchedule->add();
+		obp+=sizeof(long);
+
+		if(pRelativeVar->bOffsetOffset){
+			//add eax,ecx
+			compiler.codeGenerator.op_add_RR( REG_EAX, REG_ECX );
+		}
+
+		//push dword ptr[eax]
+		compiler.codeGenerator.op_push_M( REG_EAX );
 	}
 	else if(pRelativeVar->dwKind==VAR_LOCAL){
 		if(pRelativeVar->bOffsetOffset){
-			//add ecx,offset+sizeof(long)
+			//add ecx,offset
 			OpBuffer[obp++]=(char)0x81;
 			OpBuffer[obp++]=(char)0xC1;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset+sizeof(long);
+			*((long *)(OpBuffer+obp))=pRelativeVar->offset;
 			AddLocalVarAddrSchedule();
 			obp+=sizeof(long);
 
 			//push dword ptr[ebp+ecx]
-			OpBuffer[obp++]=(char)0xFF;
-			OpBuffer[obp++]=(char)0x74;
-			OpBuffer[obp++]=(char)0x0D;
-			OpBuffer[obp++]=(char)0x00;
-
-			//sub ecx,sizeof(long)
-			OpBuffer[obp++]=(char)0x83;
-			OpBuffer[obp++]=(char)0xE9;
-			OpBuffer[obp++]=(char)0x04;
-
-			//push dword ptr[ebp+ecx]
-			OpBuffer[obp++]=(char)0xFF;
-			OpBuffer[obp++]=(char)0x74;
-			OpBuffer[obp++]=(char)0x0D;
-			OpBuffer[obp++]=(char)0x00;
-		}
-		else{
-			//push dword ptr[ebp+offset+sizeof(long)]
-			OpBuffer[obp++]=(char)0xFF;
-			OpBuffer[obp++]=(char)0xB5;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset+sizeof(long);
-			AddLocalVarAddrSchedule();
-			obp+=sizeof(long);
-
+			compiler.codeGenerator.PutOld(
+				(char)0xFF,
+				(char)0x74,
+				(char)0x0D,
+				(char)0x00
+			);
+		}
+		else{
 			//push dword ptr[ebp+offset]
 			OpBuffer[obp++]=(char)0xFF;
@@ -254,484 +236,13 @@
 		if(pRelativeVar->bOffsetOffset){
 			//add eax,ecx
-			OpBuffer[obp++]=(char)0x03;
-			OpBuffer[obp++]=(char)0xC1;
-		}
-
-		//push dword ptr[eax+sizeof(long)]
-		OpBuffer[obp++]=(char)0xFF;
-		OpBuffer[obp++]=(char)0x70;
-		OpBuffer[obp++]=(char)0x04;
+			compiler.codeGenerator.op_add_RR( REG_EAX, REG_ECX );
+		}
 
 		//push dword ptr[eax]
-		OpBuffer[obp++]=(char)0xFF;
-		OpBuffer[obp++]=(char)0x30;
-	}
-	else if(pRelativeVar->dwKind==VAR_DIRECTMEM){
-		//push dword ptr[ecx+sizeof(long)]
-		OpBuffer[obp++]=(char)0xFF;
-		OpBuffer[obp++]=(char)0xB1;
-		*((long *)(OpBuffer+obp))=sizeof(long);
-		obp+=sizeof(long);
-
-		//push dword ptr[ecx]
-		OpBuffer[obp++]=(char)0xFF;
-		OpBuffer[obp++]=(char)0x31;
-	}
-}
-void PushLongVariable(RELATIVE_VAR *pRelativeVar){
-	if(pRelativeVar->dwKind==VAR_GLOBAL){
-		if(pRelativeVar->bOffsetOffset){
-			//push dword ptr[ecx+offset]
-			OpBuffer[obp++]=(char)0xFF;
-			OpBuffer[obp++]=(char)0xB1;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-			pobj_GlobalVarSchedule->add();
-			obp+=sizeof(long);
-		}
-		else{
-			//push dword ptr[offset]
-			OpBuffer[obp++]=(char)0xFF;
-			OpBuffer[obp++]=(char)0x35;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-			pobj_GlobalVarSchedule->add();
-			obp+=sizeof(long);
-		}
-	}
-	else if(pRelativeVar->dwKind==VAR_REFGLOBAL){
-		//mov eax,dword ptr[offset]
-		op_mov_RM( sizeof(long), REG_EAX, REG_NON, (int)pRelativeVar->offset, MOD_DISP32 );
-		obp-=sizeof(long);
-		pobj_GlobalVarSchedule->add();
-		obp+=sizeof(long);
-
-		if(pRelativeVar->bOffsetOffset){
-			//add eax,ecx
-			OpBuffer[obp++]=(char)0x03;
-			OpBuffer[obp++]=(char)0xC1;
-		}
-
-		//push dword ptr[eax]
-		OpBuffer[obp++]=(char)0xFF;
-		OpBuffer[obp++]=(char)0x30;
-	}
-	else if(pRelativeVar->dwKind==VAR_LOCAL){
-		if(pRelativeVar->bOffsetOffset){
-			//add ecx,offset
-			OpBuffer[obp++]=(char)0x81;
-			OpBuffer[obp++]=(char)0xC1;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-			AddLocalVarAddrSchedule();
-			obp+=sizeof(long);
-
-			//push dword ptr[ebp+ecx]
-			OpBuffer[obp++]=(char)0xFF;
-			OpBuffer[obp++]=(char)0x74;
-			OpBuffer[obp++]=(char)0x0D;
-			OpBuffer[obp++]=(char)0x00;
-		}
-		else{
-			//push dword ptr[ebp+offset]
-			OpBuffer[obp++]=(char)0xFF;
-			OpBuffer[obp++]=(char)0xB5;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-			AddLocalVarAddrSchedule();
-			obp+=sizeof(long);
-		}
-	}
-	else if(pRelativeVar->dwKind==VAR_REFLOCAL){
-		//mov eax,dword ptr[ebp+offset]
-		OpBuffer[obp++]=(char)0x8B;
-		OpBuffer[obp++]=(char)0x85;
-		*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-		AddLocalVarAddrSchedule();
-		obp+=sizeof(long);
-
-		if(pRelativeVar->bOffsetOffset){
-			//add eax,ecx
-			OpBuffer[obp++]=(char)0x03;
-			OpBuffer[obp++]=(char)0xC1;
-		}
-
-		//push dword ptr[eax]
-		OpBuffer[obp++]=(char)0xFF;
-		OpBuffer[obp++]=(char)0x30;
+		compiler.codeGenerator.op_push_M( REG_EAX );
 	}
 	else if(pRelativeVar->dwKind==VAR_DIRECTMEM){
 		//push dword ptr[ecx]
-		OpBuffer[obp++]=(char)0xFF;
-		OpBuffer[obp++]=(char)0x31;
+		compiler.codeGenerator.op_push_M( REG_ECX );
 	}
 }
-void PushIntegerVariable(RELATIVE_VAR *pRelativeVar){
-	if(pRelativeVar->dwKind==VAR_GLOBAL){
-		if(pRelativeVar->bOffsetOffset){
-			//movsx eax,word ptr[ecx+offset]
-			OpBuffer[obp++]=(char)0x0F;
-			OpBuffer[obp++]=(char)0xBF;
-			OpBuffer[obp++]=(char)0x81;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-			pobj_GlobalVarSchedule->add();
-			obp+=sizeof(long);
-		}
-		else{
-			//movsx eax,word ptr[offset]
-			OpBuffer[obp++]=(char)0x0F;
-			OpBuffer[obp++]=(char)0xBF;
-			OpBuffer[obp++]=(char)0x05;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-			pobj_GlobalVarSchedule->add();
-			obp+=sizeof(long);
-		}
-	}
-	else if(pRelativeVar->dwKind==VAR_REFGLOBAL){
-		//mov ebx,dword ptr[offset]
-		op_mov_RM( sizeof(long), REG_EBX, REG_NON, (int)pRelativeVar->offset, MOD_DISP32 );
-		obp-=sizeof(long);
-		pobj_GlobalVarSchedule->add();
-		obp+=sizeof(long);
-
-		if(pRelativeVar->bOffsetOffset){
-			//add ebx,ecx
-			OpBuffer[obp++]=(char)0x03;
-			OpBuffer[obp++]=(char)0xD9;
-		}
-
-		//movsx eax,word ptr[ebx]
-		OpBuffer[obp++]=(char)0x0F;
-		OpBuffer[obp++]=(char)0xBF;
-		OpBuffer[obp++]=(char)0x03;
-	}
-	else if(pRelativeVar->dwKind==VAR_LOCAL){
-		if(pRelativeVar->bOffsetOffset){
-			//add ecx,offset
-			OpBuffer[obp++]=(char)0x81;
-			OpBuffer[obp++]=(char)0xC1;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-			AddLocalVarAddrSchedule();
-			obp+=sizeof(long);
-
-			//movsx eax,word ptr[ebp+ecx]
-			OpBuffer[obp++]=(char)0x0F;
-			OpBuffer[obp++]=(char)0xBF;
-			OpBuffer[obp++]=(char)0x44;
-			OpBuffer[obp++]=(char)0x0D;
-			OpBuffer[obp++]=(char)0x00;
-		}
-		else{
-			//movsx eax,word ptr[ebp+offset]
-			OpBuffer[obp++]=(char)0x0F;
-			OpBuffer[obp++]=(char)0xBF;
-			OpBuffer[obp++]=(char)0x85;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-			AddLocalVarAddrSchedule();
-			obp+=sizeof(long);
-		}
-	}
-	else if(pRelativeVar->dwKind==VAR_REFLOCAL){
-		//mov ebx,dword ptr[ebp+offset]
-		OpBuffer[obp++]=(char)0x8B;
-		OpBuffer[obp++]=(char)0x9D;
-		*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-		AddLocalVarAddrSchedule();
-		obp+=sizeof(long);
-
-		if(pRelativeVar->bOffsetOffset){
-			//add ebx,ecx
-			OpBuffer[obp++]=(char)0x03;
-			OpBuffer[obp++]=(char)0xD9;
-		}
-
-		//movsx eax,word ptr[ebx]
-		OpBuffer[obp++]=(char)0x0F;
-		OpBuffer[obp++]=(char)0xBF;
-		OpBuffer[obp++]=(char)0x03;
-	}
-	else if(pRelativeVar->dwKind==VAR_DIRECTMEM){
-		//movsx eax,word ptr[ecx]
-		OpBuffer[obp++]=(char)0x0F;
-		OpBuffer[obp++]=(char)0xBF;
-		OpBuffer[obp++]=(char)0x01;
-	}
-
-	//push eax
-	op_push(REG_EAX);
-}
-void PushWordVariable(RELATIVE_VAR *pRelativeVar){
-	//xor eax,eax（eaxを0に初期化する）
-	op_zero_reg(REG_EAX);
-
-	if(pRelativeVar->dwKind==VAR_GLOBAL){
-		if(pRelativeVar->bOffsetOffset){
-			//mov ax,word ptr[ecx+offset]
-			OpBuffer[obp++]=(char)0x66;
-			OpBuffer[obp++]=(char)0x8B;
-			OpBuffer[obp++]=(char)0x81;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-			pobj_GlobalVarSchedule->add();
-			obp+=sizeof(long);
-		}
-		else{
-			//mov ax,word ptr[offset]
-			OpBuffer[obp++]=(char)0x66;
-			OpBuffer[obp++]=(char)0xA1;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-			pobj_GlobalVarSchedule->add();
-			obp+=sizeof(long);
-		}
-	}
-	else if(pRelativeVar->dwKind==VAR_REFGLOBAL){
-		//mov ebx,dword ptr[offset]
-		op_mov_RM( sizeof(long), REG_EBX, REG_NON, (int)pRelativeVar->offset, MOD_DISP32 );
-		obp-=sizeof(long);
-		pobj_GlobalVarSchedule->add();
-		obp+=sizeof(long);
-
-		if(pRelativeVar->bOffsetOffset){
-			//add ebx,ecx
-			OpBuffer[obp++]=(char)0x03;
-			OpBuffer[obp++]=(char)0xD9;
-		}
-
-		//mov ax,word ptr[ebx]
-		OpBuffer[obp++]=(char)0x66;
-		OpBuffer[obp++]=(char)0x8B;
-		OpBuffer[obp++]=(char)0x03;
-	}
-	else if(pRelativeVar->dwKind==VAR_LOCAL){
-		if(pRelativeVar->bOffsetOffset){
-			//add ecx,offset
-			OpBuffer[obp++]=(char)0x81;
-			OpBuffer[obp++]=(char)0xC1;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-			AddLocalVarAddrSchedule();
-			obp+=sizeof(long);
-
-			//mov ax,word ptr[ebp+ecx]
-			OpBuffer[obp++]=(char)0x66;
-			OpBuffer[obp++]=(char)0x8B;
-			OpBuffer[obp++]=(char)0x44;
-			OpBuffer[obp++]=(char)0x0D;
-			OpBuffer[obp++]=(char)0x00;
-		}
-		else{
-			//mov ax,word ptr[ebp+offset]
-			OpBuffer[obp++]=(char)0x66;
-			OpBuffer[obp++]=(char)0x8B;
-			OpBuffer[obp++]=(char)0x85;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-			AddLocalVarAddrSchedule();
-			obp+=sizeof(long);
-		}
-	}
-	else if(pRelativeVar->dwKind==VAR_REFLOCAL){
-		//mov ebx,dword ptr[ebp+offset]
-		OpBuffer[obp++]=(char)0x8B;
-		OpBuffer[obp++]=(char)0x9D;
-		*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-		AddLocalVarAddrSchedule();
-		obp+=sizeof(long);
-
-		if(pRelativeVar->bOffsetOffset){
-			//add ebx,ecx
-			OpBuffer[obp++]=(char)0x03;
-			OpBuffer[obp++]=(char)0xD9;
-		}
-
-		//mov ax,word ptr[ebx]
-		OpBuffer[obp++]=(char)0x66;
-		OpBuffer[obp++]=(char)0x8B;
-		OpBuffer[obp++]=(char)0x03;
-	}
-	else if(pRelativeVar->dwKind==VAR_DIRECTMEM){
-		//mov ax,word ptr[ecx]
-		OpBuffer[obp++]=(char)0x66;
-		OpBuffer[obp++]=(char)0x8B;
-		OpBuffer[obp++]=(char)0x01;
-	}
-
-	//push eax
-	op_push(REG_EAX);
-}
-void PushCharVariable(RELATIVE_VAR *pRelativeVar){
-	if(pRelativeVar->dwKind==VAR_GLOBAL){
-		if(pRelativeVar->bOffsetOffset){
-			//movsx eax,byte ptr[ecx+offset]
-			OpBuffer[obp++]=(char)0x0F;
-			OpBuffer[obp++]=(char)0xBE;
-			OpBuffer[obp++]=(char)0x81;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-			pobj_GlobalVarSchedule->add();
-			obp+=sizeof(long);
-		}
-		else{
-			//movsx eax,byte ptr[offset]
-			OpBuffer[obp++]=(char)0x0F;
-			OpBuffer[obp++]=(char)0xBE;
-			OpBuffer[obp++]=(char)0x05;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-			pobj_GlobalVarSchedule->add();
-			obp+=sizeof(long);
-		}
-	}
-	else if(pRelativeVar->dwKind==VAR_REFGLOBAL){
-		//mov ebx,dword ptr[offset]
-		op_mov_RM( sizeof(long), REG_EBX, REG_NON, (int)pRelativeVar->offset, MOD_DISP32 );
-		obp-=sizeof(long);
-		pobj_GlobalVarSchedule->add();
-		obp+=sizeof(long);
-
-		if(pRelativeVar->bOffsetOffset){
-			//add ebx,ecx
-			OpBuffer[obp++]=(char)0x03;
-			OpBuffer[obp++]=(char)0xD9;
-		}
-
-		//movsx eax,byte ptr[ebx]
-		OpBuffer[obp++]=(char)0x0F;
-		OpBuffer[obp++]=(char)0xBE;
-		OpBuffer[obp++]=(char)0x03;
-	}
-	else if(pRelativeVar->dwKind==VAR_LOCAL){
-		if(pRelativeVar->bOffsetOffset){
-			//add ecx,offset
-			OpBuffer[obp++]=(char)0x81;
-			OpBuffer[obp++]=(char)0xC1;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-			AddLocalVarAddrSchedule();
-			obp+=sizeof(long);
-
-			//movsx eax,byte ptr[ebp+ecx]
-			OpBuffer[obp++]=(char)0x0F;
-			OpBuffer[obp++]=(char)0xBE;
-			OpBuffer[obp++]=(char)0x44;
-			OpBuffer[obp++]=(char)0x0D;
-			OpBuffer[obp++]=(char)0x00;
-		}
-		else{
-			//movsx eax,byte ptr[ebp+offset]
-			OpBuffer[obp++]=(char)0x0F;
-			OpBuffer[obp++]=(char)0xBE;
-			OpBuffer[obp++]=(char)0x85;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-			AddLocalVarAddrSchedule();
-			obp+=sizeof(long);
-		}
-	}
-	else if(pRelativeVar->dwKind==VAR_REFLOCAL){
-		//mov ebx,dword ptr[ebp+offset]
-		OpBuffer[obp++]=(char)0x8B;
-		OpBuffer[obp++]=(char)0x9D;
-		*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-		AddLocalVarAddrSchedule();
-		obp+=sizeof(long);
-
-		if(pRelativeVar->bOffsetOffset){
-			//add ebx,ecx
-			OpBuffer[obp++]=(char)0x03;
-			OpBuffer[obp++]=(char)0xD9;
-		}
-
-		//movsx eax,byte ptr[ebx]
-		OpBuffer[obp++]=(char)0x0F;
-		OpBuffer[obp++]=(char)0xBE;
-		OpBuffer[obp++]=(char)0x03;
-	}
-	else if(pRelativeVar->dwKind==VAR_DIRECTMEM){
-		//movsx eax,byte ptr[ecx]
-		OpBuffer[obp++]=(char)0x0F;
-		OpBuffer[obp++]=(char)0xBE;
-		OpBuffer[obp++]=(char)0x01;
-	}
-
-	//push eax
-	op_push(REG_EAX);
-}
-void PushByteVariable(RELATIVE_VAR *pRelativeVar){
-	//xor eax,eax（eaxを0に初期化する）
-	op_zero_reg(REG_EAX);
-
-	if(pRelativeVar->dwKind==VAR_GLOBAL){
-		if(pRelativeVar->bOffsetOffset){
-			//mov al,byte ptr[ecx+offset]
-			OpBuffer[obp++]=(char)0x8A;
-			OpBuffer[obp++]=(char)0x81;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-			pobj_GlobalVarSchedule->add();
-			obp+=sizeof(long);
-		}
-		else{
-			//mov al,byte ptr[offset]
-			OpBuffer[obp++]=(char)0xA0;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-			pobj_GlobalVarSchedule->add();
-			obp+=sizeof(long);
-		}
-	}
-	else if(pRelativeVar->dwKind==VAR_REFGLOBAL){
-		//mov ebx,dword ptr[offset]
-		op_mov_RM( sizeof(long), REG_EBX, REG_NON, (int)pRelativeVar->offset, MOD_DISP32 );
-		obp-=sizeof(long);
-		pobj_GlobalVarSchedule->add();
-		obp+=sizeof(long);
-
-		if(pRelativeVar->bOffsetOffset){
-			//add ebx,ecx
-			OpBuffer[obp++]=(char)0x03;
-			OpBuffer[obp++]=(char)0xD9;
-		}
-
-		//mov al,byte ptr[ebx]
-		OpBuffer[obp++]=(char)0x8A;
-		OpBuffer[obp++]=(char)0x03;
-	}
-	else if(pRelativeVar->dwKind==VAR_LOCAL){
-		if(pRelativeVar->bOffsetOffset){
-			//add ecx,offset
-			OpBuffer[obp++]=(char)0x81;
-			OpBuffer[obp++]=(char)0xC1;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-			AddLocalVarAddrSchedule();
-			obp+=sizeof(long);
-
-			//mov al,byte ptr[ebp+ecx]
-			OpBuffer[obp++]=(char)0x8A;
-			OpBuffer[obp++]=(char)0x44;
-			OpBuffer[obp++]=(char)0x0D;
-			OpBuffer[obp++]=(char)0x00;
-		}
-		else{
-			//mov al,byte ptr[ebp+offset]
-			OpBuffer[obp++]=(char)0x8A;
-			OpBuffer[obp++]=(char)0x85;
-			*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-			AddLocalVarAddrSchedule();
-			obp+=sizeof(long);
-		}
-	}
-	else if(pRelativeVar->dwKind==VAR_REFLOCAL){
-		//mov ebx,dword ptr[ebp+offset]
-		OpBuffer[obp++]=(char)0x8B;
-		OpBuffer[obp++]=(char)0x9D;
-		*((long *)(OpBuffer+obp))=pRelativeVar->offset;
-		AddLocalVarAddrSchedule();
-		obp+=sizeof(long);
-
-		if(pRelativeVar->bOffsetOffset){
-			//add ebx,ecx
-			OpBuffer[obp++]=(char)0x03;
-			OpBuffer[obp++]=(char)0xD9;
-		}
-
-		//mov al,byte ptr[ebx]
-		OpBuffer[obp++]=(char)0x8A;
-		OpBuffer[obp++]=(char)0x03;
-	}
-	else if(pRelativeVar->dwKind==VAR_DIRECTMEM){
-		//mov al,byte ptr[ecx]
-		OpBuffer[obp++]=(char)0x8A;
-		OpBuffer[obp++]=(char)0x01;
-	}
-
-	//push eax
-	op_push(REG_EAX);
-}
