From 9032d256cbe2594651cb809ba2f13f0aedadbace Mon Sep 17 00:00:00 2001
From: mterwoord_cp <7cd3fd84a0151ea055c2f79e4d2eef9576fe9afesxUZAwxD>
Date: Mon, 10 Nov 2008 11:20:38 +0000
Subject: [PATCH]
---
.../Assembler/X86/MoveTests.cs | 13 ++++++++++++
.../MoveTests/ImmediateToMemorySimple16.asm | 10 +++++++++
.../MoveTests/ImmediateToMemorySimple16.bin | Bin 0 -> 42 bytes
.../Indy.IL2CPU.Tests.csproj | 6 ++++++
source/Indy.IL2CPU/Assembler/x86/Move.cs | 18 +++++------------
.../Assembler/x86/_Infra/Instruction.cs | 11 ++++++----
.../Playgrounds/Matthijs/TestApp/Program.cs | 19 +++++++++---------
7 files changed, 51 insertions(+), 26 deletions(-)
create mode 100644 source/Indy.IL2CPU.Tests/Assembler/X86/VerificationData/MoveTests/ImmediateToMemorySimple16.asm
create mode 100644 source/Indy.IL2CPU.Tests/Assembler/X86/VerificationData/MoveTests/ImmediateToMemorySimple16.bin
diff --git a/source/Indy.IL2CPU.Tests/Assembler/X86/MoveTests.cs b/source/Indy.IL2CPU.Tests/Assembler/X86/MoveTests.cs
index 92b703a11..351c49e5b 100644
--- a/source/Indy.IL2CPU.Tests/Assembler/X86/MoveTests.cs
+++ b/source/Indy.IL2CPU.Tests/Assembler/X86/MoveTests.cs
@@ -59,5 +59,18 @@ namespace Indy.IL2CPU.Tests.Assembler.X86 {
new Move { Size = 8, DestinationReg = Registers.EBP, DestinationIsIndirect = true, SourceValue = 72 };
Verify();
}
+
+ [Test]
+ public void TestImmediateToMemorySimple16() {
+ new Move { Size = 16, DestinationReg = Registers.EAX, DestinationIsIndirect = true, SourceValue = 65 };
+ new Move { Size = 16, DestinationReg = Registers.EBX, DestinationIsIndirect = true, SourceValue = 66 };
+ new Move { Size = 16, DestinationReg = Registers.ECX, DestinationIsIndirect = true, SourceValue = 67 };
+ new Move { Size = 16, DestinationReg = Registers.EDX, DestinationIsIndirect = true, SourceValue = 68 };
+ new Move { Size = 16, DestinationReg = Registers.EDI, DestinationIsIndirect = true, SourceValue = 69 };
+ new Move { Size = 16, DestinationReg = Registers.ESI, DestinationIsIndirect = true, SourceValue = 70 };
+ new Move { Size = 16, DestinationReg = Registers.ESP, DestinationIsIndirect = true, SourceValue = 71 };
+ new Move { Size = 16, DestinationReg = Registers.EBP, DestinationIsIndirect = true, SourceValue = 72 };
+ Verify();
+ }
}
}
\ No newline at end of file
diff --git a/source/Indy.IL2CPU.Tests/Assembler/X86/VerificationData/MoveTests/ImmediateToMemorySimple16.asm b/source/Indy.IL2CPU.Tests/Assembler/X86/VerificationData/MoveTests/ImmediateToMemorySimple16.asm
new file mode 100644
index 000000000..c6c8107a6
--- /dev/null
+++ b/source/Indy.IL2CPU.Tests/Assembler/X86/VerificationData/MoveTests/ImmediateToMemorySimple16.asm
@@ -0,0 +1,10 @@
+use32
+org 0x200000
+ mov word [EAX], 0x41
+ mov word [EBX], 0x42
+ mov word [ECX], 0x43
+ mov word [EDX], 0x44
+ mov word [EDI], 0x45
+ mov word [ESI], 0x46
+ mov word [ESP], 0x47
+ mov word [EBP], 0x48
diff --git a/source/Indy.IL2CPU.Tests/Assembler/X86/VerificationData/MoveTests/ImmediateToMemorySimple16.bin b/source/Indy.IL2CPU.Tests/Assembler/X86/VerificationData/MoveTests/ImmediateToMemorySimple16.bin
new file mode 100644
index 0000000000000000000000000000000000000000..7ac3585628874aa7bc13cd6f9d10c2b20a69b04a
GIT binary patch
literal 42
pcmYd0&fv(9cAVJ>NH97B2__dH!R`tq*xY~wi;6ptbY<{h000lf3=IGP
literal 0
HcmV?d00001
diff --git a/source/Indy.IL2CPU.Tests/Indy.IL2CPU.Tests.csproj b/source/Indy.IL2CPU.Tests/Indy.IL2CPU.Tests.csproj
index 6503c220a..feb44ca1c 100644
--- a/source/Indy.IL2CPU.Tests/Indy.IL2CPU.Tests.csproj
+++ b/source/Indy.IL2CPU.Tests/Indy.IL2CPU.Tests.csproj
@@ -79,6 +79,12 @@
+
+
+
+
+
+