Index: /trunk/abdev/BasicCompiler64/NumOpe_Logical.cpp
===================================================================
--- /trunk/abdev/BasicCompiler64/NumOpe_Logical.cpp	(revision 432)
+++ /trunk/abdev/BasicCompiler64/NumOpe_Logical.cpp	(revision 433)
@@ -59,5 +59,5 @@
 
 		if(idCalc==CALC_XOR){
-			//add reg1,reg2
+			//xor reg1,reg2
 			compiler.codeGenerator.op_xor_reg(sizeof(long),reg1,reg2);
 		}
@@ -104,6 +104,8 @@
 
 		if( reg != REG_RAX ){
-			//mov rax,qword ptr[rsp+offset]     ※スタックフレームを利用
-			pobj_sf->pop(REG_RAX);
+			// raxを演算レジスタとして利用するため、一時的に退避しておく
+
+			//mov qword ptr[rsp+offset],rax     ※スタックフレームを利用
+			pobj_sf->push(REG_RAX);
 		}
 
@@ -130,6 +132,6 @@
 			compiler.codeGenerator.op_mov_RR( reg, REG_RAX );
 
-			//mov qword ptr[rsp+offset],rax     ※スタックフレームを利用
-			pobj_sf->push(REG_RAX);
+			//mov rax,qword ptr[rsp+offset]     ※スタックフレームを利用
+			pobj_sf->pop(REG_RAX);
 		}
 
