diff --git a/source/Indy.IL2CPU.Assembler.X86/Move.cs b/source/Indy.IL2CPU.Assembler.X86/Move.cs index 10c2cf34f..bb53cf40b 100644 --- a/source/Indy.IL2CPU.Assembler.X86/Move.cs +++ b/source/Indy.IL2CPU.Assembler.X86/Move.cs @@ -32,7 +32,7 @@ namespace Indy.IL2CPU.Assembler.X86 { public override string ToString() { if (String.IsNullOrEmpty(Size)) { - return "mov " + Destination + "," + Source; + return "mov " + Destination + ", " + Source; } else { return "mov " + Size + " " + Destination + ", " + Source; } diff --git a/source/Indy.IL2CPU.Assembler.X86/SpecialDebug/DebugStub.cs b/source/Indy.IL2CPU.Assembler.X86/SpecialDebug/DebugStub.cs index 5f4d05b09..dd1023e94 100644 --- a/source/Indy.IL2CPU.Assembler.X86/SpecialDebug/DebugStub.cs +++ b/source/Indy.IL2CPU.Assembler.X86/SpecialDebug/DebugStub.cs @@ -120,7 +120,7 @@ namespace Indy.IL2CPU.Assembler.X86 { //TODO: Change WriteByteToComPort to take an address to write to in a register Call("WriteByteToComPort"); new X86.Dec("ECX"); - new X86.Inc("ESI"); + //new X86.Inc("ESI"); Jump("DebugStub_SendTextWriteChar"); Label = "DebugStub_SendTextExit"; diff --git a/source/Indy.IL2CPU.Assembler.X86/X/RegisterEAX.cs b/source/Indy.IL2CPU.Assembler.X86/X/RegisterEAX.cs index 8a410aaad..679fa3d82 100644 --- a/source/Indy.IL2CPU.Assembler.X86/X/RegisterEAX.cs +++ b/source/Indy.IL2CPU.Assembler.X86/X/RegisterEAX.cs @@ -21,5 +21,10 @@ namespace Indy.IL2CPU.Assembler.X86.X { Instance.Move(aValue.ToString()); return Instance; } + + public static implicit operator RegisterEAX(RegisterECX aValue) { + Instance.Move(aValue.ToString()); + return Instance; + } } } diff --git a/source/Indy.IL2CPU.Assembler.X86/X/RegisterECX.cs b/source/Indy.IL2CPU.Assembler.X86/X/RegisterECX.cs index 78d4c9ad5..db8590217 100644 --- a/source/Indy.IL2CPU.Assembler.X86/X/RegisterECX.cs +++ b/source/Indy.IL2CPU.Assembler.X86/X/RegisterECX.cs @@ -21,5 +21,10 @@ namespace Indy.IL2CPU.Assembler.X86.X { Instance.Move(aValue.ToString()); return Instance; } + + public static implicit operator RegisterECX(RegisterEAX aValue) { + Instance.Move(aValue.ToString()); + return Instance; + } } } diff --git a/source/Indy.IL2CPU.Assembler.X86/X/Y86.cs b/source/Indy.IL2CPU.Assembler.X86/X/Y86.cs index d74f7af58..b2d9cc319 100644 --- a/source/Indy.IL2CPU.Assembler.X86/X/Y86.cs +++ b/source/Indy.IL2CPU.Assembler.X86/X/Y86.cs @@ -14,9 +14,9 @@ namespace Indy.IL2CPU.Assembler.X86.X { public RegisterEAX EAX = RegisterEAX.Instance; public RegisterAL AL = RegisterAL.Instance; - public RegisterEAX ECX = RegisterEAX.Instance; + public RegisterECX ECX = RegisterECX.Instance; - public RegisterEAX EDX = RegisterEAX.Instance; + public RegisterEDX EDX = RegisterEDX.Instance; public RegisterDX DX = RegisterDX.Instance; public RegisterESP ESP = RegisterESP.Instance;