support [scale * reg]
diff --git a/test/make_nm.cpp b/test/make_nm.cpp
index 47eb023..494d8ac 100644
--- a/test/make_nm.cpp
+++ b/test/make_nm.cpp
@@ -643,6 +643,7 @@
 		puts(isXbyak_ ? "out_(dx, al); dump();" : "out dx, al");
 		puts(isXbyak_ ? "out_(dx, ax); dump();" : "out dx, ax");
 		puts(isXbyak_ ? "out_(dx, eax); dump();" : "out dx, eax");
+		puts(isXbyak_ ? "lea(eax, ptr[edi + 4 * eax]); dump();" : "lea eax, [edi + 4 * eax]");
 	}
 	void putJmp() const
 	{
diff --git a/xbyak/xbyak.h b/xbyak/xbyak.h
index 481ec9b..c388492 100644
--- a/xbyak/xbyak.h
+++ b/xbyak/xbyak.h
@@ -924,6 +924,10 @@
 {
 	return RegExp(r, scale);
 }
+inline RegExp operator*(int scale, const Reg& r)
+{
+	return r * scale;
+}
 inline RegExp operator-(const RegExp& e, size_t disp)
 {
 	RegExp ret = e;