Add the infrastructure to test instruction emulations automatically.
The idea is that the instruction to be emulated is actually executed
on the hardware to be emulated, with the before and after state of the
hardware being captured and 'freeze-dried' into .dat files. The
emulation testing code then loads the before & after state from the
.dat file, emulates the instruction using the before state, and
compares the resulting state to the 'after' state. If they match, the
emulation is accurate, otherwise there is a problem.
The final format of the .dat files needs a bit more work; the plan is
to generalize them a bit and to convert the plain values to key-value pairs.
But I wanted to get this first pass committed.
This commit adds arm instruction emulation testing to the testsuite, along with
many initial .dat files.
It also fixes a bug in the llvm disassembler, where 32-bit thumb opcodes
were getting their upper & lower 16-bits reversed.
There is a new Instruction sub-class, that is intended to be loaded
from a .dat file rather than read from an executable. There is also a
new EmulationStateARM class, for handling the before & after states.
EmulationStates for other architetures can be added later when we
emulate their instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129832 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/lldb/API/SBInstruction.h b/include/lldb/API/SBInstruction.h
index 6e6926c..880cbe1 100644
--- a/include/lldb/API/SBInstruction.h
+++ b/include/lldb/API/SBInstruction.h
@@ -57,6 +57,9 @@
bool
DumpEmulation (const char * triple); // triple is to specify the architecture, e.g. 'armv6' or 'arm-apple-darwin'
+
+ bool
+ TestEmulation (lldb::SBStream &output_stream, const char *test_file);
protected:
friend class SBInstructionList;
diff --git a/include/lldb/Core/Disassembler.h b/include/lldb/Core/Disassembler.h
index fda05bc..770a6a9 100644
--- a/include/lldb/Core/Disassembler.h
+++ b/include/lldb/Core/Disassembler.h
@@ -68,9 +68,15 @@
const DataExtractor& data,
uint32_t data_offset) = 0;
+ virtual void
+ SetDescription (const char *) {}; // May be overridden in sub-classes that have descriptions.
+
bool
DumpEmulation (const ArchSpec &arch);
+ virtual bool
+ TestEmulation (Stream *stream, const char *test_file_name);
+
bool
Emulate (const ArchSpec &arch,
bool auto_advance_pc,
@@ -128,6 +134,44 @@
collection m_instructions;
};
+class PseudoInstruction :
+ public lldb_private::Instruction
+{
+public:
+
+ PseudoInstruction ();
+
+ virtual
+ ~PseudoInstruction ();
+
+ virtual void
+ Dump (lldb_private::Stream *s,
+ uint32_t max_opcode_byte_size,
+ bool show_address,
+ bool show_bytes,
+ const lldb_private::ExecutionContext* exe_ctx,
+ bool raw);
+
+ virtual bool
+ DoesBranch () const;
+
+ virtual size_t
+ Decode (const lldb_private::Disassembler &disassembler,
+ const lldb_private::DataExtractor &data,
+ uint32_t data_offset);
+
+ void
+ SetOpcode (size_t opcode_size, void *opcode_data);
+
+ virtual void
+ SetDescription (const char *description);
+
+protected:
+ std::string m_description;
+
+ DISALLOW_COPY_AND_ASSIGN (PseudoInstruction);
+};
+
class Disassembler :
public PluginInterface
{
diff --git a/include/lldb/Core/EmulateInstruction.h b/include/lldb/Core/EmulateInstruction.h
index fbd612c..12ac147 100644
--- a/include/lldb/Core/EmulateInstruction.h
+++ b/include/lldb/Core/EmulateInstruction.h
@@ -111,7 +111,9 @@
// Add or subtract a value from a base address register (other than SP)
eContextAdjustBaseRegister,
+ // Add or subtract a value from the PC or store a value to the PC.
eContextAdjustPC,
+
// Used in WriteRegister callbacks to indicate where the
eContextRegisterPlusOffset,
@@ -415,6 +417,9 @@
virtual bool
EvaluateInstruction () = 0;
+ virtual bool
+ TestEmulation (Stream *out_stream, FILE *test_file, ArchSpec &arch) = 0;
+
bool
GetAdvancePC () { return m_advance_pc; }
diff --git a/lldb.xcodeproj/project.pbxproj b/lldb.xcodeproj/project.pbxproj
index 1795781..1a1bee7 100644
--- a/lldb.xcodeproj/project.pbxproj
+++ b/lldb.xcodeproj/project.pbxproj
@@ -63,6 +63,9 @@
26680337116005F1008E1FE4 /* SBBreakpoint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF16A9C11402D5B007A7B3F /* SBBreakpoint.cpp */; };
2668035C11601108008E1FE4 /* LLDB.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26680207115FD0ED008E1FE4 /* LLDB.framework */; };
266E8C6A13528ABC000C2042 /* lldb-platform in Resources */ = {isa = PBXBuildFile; fileRef = 26DC6A101337FE6900FF7998 /* lldb-platform */; };
+ 26700BD4133D1262009921FB /* ARMDisassembler.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26700BD2133D1256009921FB /* ARMDisassembler.framework */; };
+ 26700BD5133D1266009921FB /* ARMDisassembler.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26700BD2133D1256009921FB /* ARMDisassembler.framework */; };
+ 26700BD6133D1267009921FB /* ARMDisassembler.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 26700BD2133D1256009921FB /* ARMDisassembler.framework */; };
2671A0CE134825F6003A87BB /* ConnectionMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 2671A0CD134825F6003A87BB /* ConnectionMachPort.h */; };
2671A0D013482601003A87BB /* ConnectionMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2671A0CF13482601003A87BB /* ConnectionMachPort.cpp */; };
26744EF11338317700EF765A /* GDBRemoteCommunicationClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26744EED1338317700EF765A /* GDBRemoteCommunicationClient.cpp */; };
@@ -210,7 +213,6 @@
2689008C13353E4200698AC0 /* DisassemblerLLVM.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 260C897410F57C5600BB2B04 /* DisassemblerLLVM.cpp */; };
2689008D13353E4200698AC0 /* DynamicLoaderMacOSXDYLD.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 260C897A10F57C5600BB2B04 /* DynamicLoaderMacOSXDYLD.cpp */; };
2689008E13353E4200698AC0 /* DynamicLoaderStatic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 268A683D1321B53B000E3FB8 /* DynamicLoaderStatic.cpp */; };
- 2689008F13353E4200698AC0 /* EmulateInstructionARM.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26D9FDCC12F7853F0003F2EE /* EmulateInstructionARM.cpp */; };
2689009013353E4200698AC0 /* ItaniumABILanguageRuntime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CB4436A124944B000C13DC2 /* ItaniumABILanguageRuntime.cpp */; };
2689009113353E4200698AC0 /* AppleObjCRuntime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C61978812823D4300FAFFCC /* AppleObjCRuntime.cpp */; };
2689009213353E4200698AC0 /* AppleObjCRuntimeV1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4C61978A12823D4300FAFFCC /* AppleObjCRuntimeV1.cpp */; };
@@ -416,12 +418,15 @@
4CD0BD0F134BFADF00CB44D4 /* ValueObjectDynamicValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4CD0BD0E134BFADF00CB44D4 /* ValueObjectDynamicValue.cpp */; };
9A19A6AF1163BBB200E0D453 /* SBValue.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A19A6A51163BB7E00E0D453 /* SBValue.h */; settings = {ATTRIBUTES = (Public, ); }; };
9A19A6B01163BBB300E0D453 /* SBValue.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A19A6AD1163BB9800E0D453 /* SBValue.cpp */; };
+ 9A22A161135E30370024DDC3 /* EmulateInstructionARM.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A22A15D135E30370024DDC3 /* EmulateInstructionARM.cpp */; };
+ 9A22A163135E30370024DDC3 /* EmulationStateARM.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A22A15F135E30370024DDC3 /* EmulationStateARM.cpp */; };
9A357583116CFDEE00E8ED2F /* SBValueList.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A357582116CFDEE00E8ED2F /* SBValueList.h */; settings = {ATTRIBUTES = (Public, ); }; };
9A35758E116CFE0F00E8ED2F /* SBValueList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A35758D116CFE0F00E8ED2F /* SBValueList.cpp */; };
9A357671116E7B5200E8ED2F /* SBStringList.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A357670116E7B5200E8ED2F /* SBStringList.h */; settings = {ATTRIBUTES = (Public, ); }; };
9A357673116E7B6400E8ED2F /* SBStringList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A357672116E7B6400E8ED2F /* SBStringList.cpp */; };
9A3576A8116E9AB700E8ED2F /* SBHostOS.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A3576A7116E9AB700E8ED2F /* SBHostOS.h */; settings = {ATTRIBUTES = (Public, ); }; };
9A3576AA116E9AC700E8ED2F /* SBHostOS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A3576A9116E9AC700E8ED2F /* SBHostOS.cpp */; };
+ 9AA20A84133D278400E2E4A7 /* DisassemblerShark.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA20A82133D278400E2E4A7 /* DisassemblerShark.cpp */; };
9AA69DA61188F52100D753A0 /* PseudoTerminal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2682F16A115EDA0D00CCFF99 /* PseudoTerminal.cpp */; };
9AA69DAF118A023300D753A0 /* SBInputReader.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AA69DAE118A023300D753A0 /* SBInputReader.h */; settings = {ATTRIBUTES = (Public, ); }; };
9AA69DB1118A024600D753A0 /* SBInputReader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA69DB0118A024600D753A0 /* SBInputReader.cpp */; };
@@ -669,6 +674,7 @@
266A42D5128E3FFB0090CF7C /* ClangNamespaceDecl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ClangNamespaceDecl.cpp; path = source/Symbol/ClangNamespaceDecl.cpp; sourceTree = "<group>"; };
266A42D7128E40040090CF7C /* ClangNamespaceDecl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ClangNamespaceDecl.h; path = include/lldb/Symbol/ClangNamespaceDecl.h; sourceTree = "<group>"; };
266F5CBB12FC846200DFCE33 /* Config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Config.h; path = include/lldb/Host/Config.h; sourceTree = "<group>"; };
+ 26700BD2133D1256009921FB /* ARMDisassembler.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ARMDisassembler.framework; path = /System/Library/PrivateFrameworks/ARMDisassembler.framework; sourceTree = "<absolute>"; };
2671A0CD134825F6003A87BB /* ConnectionMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ConnectionMachPort.h; path = include/lldb/Core/ConnectionMachPort.h; sourceTree = "<group>"; };
2671A0CF13482601003A87BB /* ConnectionMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ConnectionMachPort.cpp; path = source/Core/ConnectionMachPort.cpp; sourceTree = "<group>"; };
2672D8461189055500FF4019 /* CommandObjectFrame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CommandObjectFrame.cpp; path = source/Commands/CommandObjectFrame.cpp; sourceTree = "<group>"; };
@@ -988,8 +994,6 @@
26D5E162135BB054006EA0A7 /* OptionGroupPlatform.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OptionGroupPlatform.cpp; path = source/Interpreter/OptionGroupPlatform.cpp; sourceTree = "<group>"; };
26D9FDC612F784E60003F2EE /* EmulateInstruction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmulateInstruction.h; path = include/lldb/Core/EmulateInstruction.h; sourceTree = "<group>"; };
26D9FDC812F784FD0003F2EE /* EmulateInstruction.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = EmulateInstruction.cpp; path = source/Core/EmulateInstruction.cpp; sourceTree = "<group>"; };
- 26D9FDCC12F7853F0003F2EE /* EmulateInstructionARM.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = EmulateInstructionARM.cpp; path = Instruction/ARM/EmulateInstructionARM.cpp; sourceTree = "<group>"; };
- 26D9FDCD12F7853F0003F2EE /* EmulateInstructionARM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmulateInstructionARM.h; path = Instruction/ARM/EmulateInstructionARM.h; sourceTree = "<group>"; };
26DAFD9711529BC7005A394E /* ExecutionContextScope.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ExecutionContextScope.h; path = include/lldb/Target/ExecutionContextScope.h; sourceTree = "<group>"; };
26DC6A101337FE6900FF7998 /* lldb-platform */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "lldb-platform"; sourceTree = BUILT_PRODUCTS_DIR; };
26DC6A1C1337FECA00FF7998 /* lldb-platform.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "lldb-platform.cpp"; path = "tools/lldb-platform/lldb-platform.cpp"; sourceTree = "<group>"; };
@@ -1149,6 +1153,10 @@
96A6D9C81249D98800250B38 /* ArchVolatileRegs-x86.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "ArchVolatileRegs-x86.h"; path = "Utility/ArchVolatileRegs-x86.h"; sourceTree = "<group>"; };
9A19A6A51163BB7E00E0D453 /* SBValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SBValue.h; path = include/lldb/API/SBValue.h; sourceTree = "<group>"; };
9A19A6AD1163BB9800E0D453 /* SBValue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SBValue.cpp; path = source/API/SBValue.cpp; sourceTree = "<group>"; };
+ 9A22A15D135E30370024DDC3 /* EmulateInstructionARM.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EmulateInstructionARM.cpp; sourceTree = "<group>"; };
+ 9A22A15E135E30370024DDC3 /* EmulateInstructionARM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EmulateInstructionARM.h; sourceTree = "<group>"; };
+ 9A22A15F135E30370024DDC3 /* EmulationStateARM.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = EmulationStateARM.cpp; sourceTree = "<group>"; };
+ 9A22A160135E30370024DDC3 /* EmulationStateARM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EmulationStateARM.h; sourceTree = "<group>"; };
9A2771FB1135A35C00E6ADB6 /* ScriptInterpreterNone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ScriptInterpreterNone.h; path = include/lldb/Interpreter/ScriptInterpreterNone.h; sourceTree = "<group>"; };
9A2771FC1135A37500E6ADB6 /* ScriptInterpreterNone.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ScriptInterpreterNone.cpp; path = source/Interpreter/ScriptInterpreterNone.cpp; sourceTree = "<group>"; };
9A357582116CFDEE00E8ED2F /* SBValueList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SBValueList.h; path = include/lldb/API/SBValueList.h; sourceTree = "<group>"; };
@@ -1188,6 +1196,8 @@
9A9831081125FC5800A56CB0 /* SBTarget.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SBTarget.h; path = include/lldb/API/SBTarget.h; sourceTree = "<group>"; };
9A9831091125FC5800A56CB0 /* SBThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SBThread.cpp; path = source/API/SBThread.cpp; sourceTree = "<group>"; };
9A98310A1125FC5800A56CB0 /* SBThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SBThread.h; path = include/lldb/API/SBThread.h; sourceTree = "<group>"; };
+ 9AA20A82133D278400E2E4A7 /* DisassemblerShark.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DisassemblerShark.cpp; sourceTree = "<group>"; };
+ 9AA20A83133D278400E2E4A7 /* DisassemblerShark.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DisassemblerShark.h; sourceTree = "<group>"; };
9AA69DAE118A023300D753A0 /* SBInputReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SBInputReader.h; path = include/lldb/API/SBInputReader.h; sourceTree = "<group>"; };
9AA69DB0118A024600D753A0 /* SBInputReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SBInputReader.cpp; path = source/API/SBInputReader.cpp; sourceTree = "<group>"; };
9AA69DB5118A027A00D753A0 /* InputReader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = InputReader.cpp; path = source/Core/InputReader.cpp; sourceTree = "<group>"; };
@@ -1237,6 +1247,7 @@
26680232115FD1A4008E1FE4 /* libpython.dylib in Frameworks */,
26680233115FD1A7008E1FE4 /* libobjc.dylib in Frameworks */,
4C74CB6312288704006A8171 /* Carbon.framework in Frameworks */,
+ 26700BD4133D1262009921FB /* ARMDisassembler.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1244,6 +1255,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ 26700BD5133D1266009921FB /* ARMDisassembler.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1258,6 +1270,7 @@
26B1FCBB13381071002886E2 /* libpython.dylib in Frameworks */,
26B1FCBC13381071002886E2 /* libobjc.dylib in Frameworks */,
26B1FCBD13381071002886E2 /* Carbon.framework in Frameworks */,
+ 26700BD6133D1267009921FB /* ARMDisassembler.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1353,6 +1366,7 @@
isa = PBXGroup;
children = (
260C897310F57C5600BB2B04 /* llvm */,
+ 9AA20A81133D278400E2E4A7 /* shark */,
);
path = Disassembler;
sourceTree = "<group>";
@@ -2316,16 +2330,18 @@
children = (
26D9FDCB12F785270003F2EE /* ARM */,
);
- name = Instruction;
+ path = Instruction;
sourceTree = "<group>";
};
26D9FDCB12F785270003F2EE /* ARM */ = {
isa = PBXGroup;
children = (
- 26D9FDCD12F7853F0003F2EE /* EmulateInstructionARM.h */,
- 26D9FDCC12F7853F0003F2EE /* EmulateInstructionARM.cpp */,
+ 9A22A15D135E30370024DDC3 /* EmulateInstructionARM.cpp */,
+ 9A22A15E135E30370024DDC3 /* EmulateInstructionARM.h */,
+ 9A22A15F135E30370024DDC3 /* EmulationStateARM.cpp */,
+ 9A22A160135E30370024DDC3 /* EmulationStateARM.h */,
);
- name = ARM;
+ path = ARM;
sourceTree = "<group>";
};
26DC6A1B1337FEA400FF7998 /* lldb-platform */ = {
@@ -2363,6 +2379,7 @@
26F5C32810F3DF7D009D5894 /* Libraries */ = {
isa = PBXGroup;
children = (
+ 26700BD2133D1256009921FB /* ARMDisassembler.framework */,
26F5C39010F3FA26009D5894 /* CoreFoundation.framework */,
265ABF6210F42EE900531910 /* DebugSymbols.framework */,
260C876910F538E700BB2B04 /* Foundation.framework */,
@@ -2492,6 +2509,15 @@
path = source/Host/common;
sourceTree = "<group>";
};
+ 9AA20A81133D278400E2E4A7 /* shark */ = {
+ isa = PBXGroup;
+ children = (
+ 9AA20A82133D278400E2E4A7 /* DisassemblerShark.cpp */,
+ 9AA20A83133D278400E2E4A7 /* DisassemblerShark.h */,
+ );
+ path = shark;
+ sourceTree = "<group>";
+ };
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
@@ -2996,7 +3022,6 @@
2689008C13353E4200698AC0 /* DisassemblerLLVM.cpp in Sources */,
2689008D13353E4200698AC0 /* DynamicLoaderMacOSXDYLD.cpp in Sources */,
2689008E13353E4200698AC0 /* DynamicLoaderStatic.cpp in Sources */,
- 2689008F13353E4200698AC0 /* EmulateInstructionARM.cpp in Sources */,
2689009013353E4200698AC0 /* ItaniumABILanguageRuntime.cpp in Sources */,
2689009113353E4200698AC0 /* AppleObjCRuntime.cpp in Sources */,
2689009213353E4200698AC0 /* AppleObjCRuntimeV1.cpp in Sources */,
@@ -3135,6 +3160,7 @@
264A97BF133918BC0017F0BE /* PlatformRemoteGDBServer.cpp in Sources */,
2697A54D133A6305004E4240 /* PlatformDarwin.cpp in Sources */,
26651A18133BF9E0005B64B7 /* Opcode.cpp in Sources */,
+ 9AA20A84133D278400E2E4A7 /* DisassemblerShark.cpp in Sources */,
266603CA1345B5A8004DA8B6 /* ConnectionSharedMemory.cpp in Sources */,
2671A0D013482601003A87BB /* ConnectionMachPort.cpp in Sources */,
4CABA9E0134A8BCD00539BDD /* ValueObjectMemory.cpp in Sources */,
@@ -3142,6 +3168,8 @@
26D5E15F135BAEA2006EA0A7 /* OptionGroupArchitecture.cpp in Sources */,
26D5E163135BB054006EA0A7 /* OptionGroupPlatform.cpp in Sources */,
26BD407F135D2AE000237D80 /* FileLineResolver.cpp in Sources */,
+ 9A22A161135E30370024DDC3 /* EmulateInstructionARM.cpp in Sources */,
+ 9A22A163135E30370024DDC3 /* EmulationStateARM.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -3277,6 +3305,7 @@
buildSettings = {
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
+ FRAMEWORK_SEARCH_PATHS = /System/Library/PrivateFrameworks;
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
INSTALL_PATH = /Developer/usr/bin;
@@ -3291,6 +3320,8 @@
ALWAYS_SEARCH_USER_PATHS = NO;
COPY_PHASE_STRIP = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ FRAMEWORK_SEARCH_PATHS = /System/Library/PrivateFrameworks;
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
INSTALL_PATH = /Developer/usr/bin;
ONLY_ACTIVE_ARCH = NO;
PRODUCT_NAME = "darwin-debug";
@@ -3302,6 +3333,8 @@
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ FRAMEWORK_SEARCH_PATHS = /System/Library/PrivateFrameworks;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
INSTALL_PATH = /Developer/usr/bin;
ONLY_ACTIVE_ARCH = NO;
PRODUCT_NAME = "darwin-debug";
@@ -3339,6 +3372,8 @@
"$(inherited)",
"$(LLVM_BUILD_DIR)",
);
+ LLVM_BUILD_DIR = "$(SRCROOT)/llvm";
+ LLVM_CONFIGURATION = "Debug+Asserts";
OTHER_CFLAGS = "-Wparentheses";
OTHER_CPLUSPLUSFLAGS = (
"-fno-rtti",
@@ -3388,6 +3423,8 @@
"$(inherited)",
"$(LLVM_BUILD_DIR)",
);
+ LLVM_BUILD_DIR = "$(SRCROOT)/llvm";
+ LLVM_CONFIGURATION = "Debug+Asserts";
OTHER_CFLAGS = "-Wparentheses";
OTHER_CPLUSPLUSFLAGS = (
"-fno-rtti",
@@ -3429,6 +3466,8 @@
"$(inherited)",
"$(LLVM_BUILD_DIR)",
);
+ LLVM_BUILD_DIR = "$(SRCROOT)/llvm";
+ LLVM_CONFIGURATION = "Debug+Asserts";
MACH_O_TYPE = staticlib;
MACOSX_DEPLOYMENT_TARGET = 10.6;
OTHER_CFLAGS = "-Wparentheses";
@@ -3469,6 +3508,8 @@
"$(inherited)",
"$(LLVM_BUILD_DIR)",
);
+ LLVM_BUILD_DIR = "$(SRCROOT)/llvm";
+ LLVM_CONFIGURATION = "Debug+Asserts";
MACH_O_TYPE = staticlib;
MACOSX_DEPLOYMENT_TARGET = 10.6;
OTHER_CFLAGS = "-Wparentheses";
diff --git a/source/API/SBInstruction.cpp b/source/API/SBInstruction.cpp
index a4ab155..4e5b4e2 100644
--- a/source/API/SBInstruction.cpp
+++ b/source/API/SBInstruction.cpp
@@ -149,3 +149,14 @@
return false;
}
+bool
+SBInstruction::TestEmulation (lldb::SBStream &output_stream, const char *test_file)
+{
+ if (!m_opaque_sp.get())
+ m_opaque_sp.reset (new PseudoInstruction());
+
+ bool success = m_opaque_sp->TestEmulation (output_stream.get(), test_file);
+ if (output_stream.GetSize() > 0)
+ fprintf (stdout, "%s", output_stream.GetData());
+ return success;
+}
\ No newline at end of file
diff --git a/source/Core/Disassembler.cpp b/source/Core/Disassembler.cpp
index c422113..2db2d55 100644
--- a/source/Core/Disassembler.cpp
+++ b/source/Core/Disassembler.cpp
@@ -503,6 +503,60 @@
}
bool
+Instruction::TestEmulation (Stream *out_stream, const char *file_name)
+{
+ if (!out_stream)
+ return false;
+
+ if (!file_name)
+ {
+ out_stream->Printf ("Instruction::TestEmulation: Missing file_name.\n");
+ return false;
+ }
+
+ FILE *test_file = fopen (file_name, "r");
+ if (!test_file)
+ {
+ out_stream->Printf ("Instruction::TestEmulation: Attempt to open test file failed.\n");
+ return false;
+ }
+
+ ArchSpec arch;
+ char buffer[256];
+ if (!fgets (buffer,255, test_file)) // Read/skip first line of file, which should be a comment line (description).
+ {
+ out_stream->Printf ("Instruction::TestEmulation: Read comment line failed.\n");
+ fclose (test_file);
+ return false;
+ }
+ SetDescription (buffer);
+
+ if (fscanf (test_file, "%s", buffer) != 1) // Read the arch or arch-triple from the file
+ {
+ out_stream->Printf ("Instruction::TestEmulation: Read arch failed.\n");
+ fclose (test_file);
+ return false;
+ }
+
+ const char *cptr = buffer;
+ arch.SetTriple (llvm::Triple (cptr));
+
+ bool success = false;
+ std::auto_ptr<EmulateInstruction> insn_emulator_ap (EmulateInstruction::FindPlugin (arch, NULL));
+ if (insn_emulator_ap.get())
+ success = insn_emulator_ap->TestEmulation (out_stream, test_file, arch);
+
+ fclose (test_file);
+
+ if (success)
+ out_stream->Printf ("Emulation test succeeded.\n");
+ else
+ out_stream->Printf ("Emulation test failed.\n");
+
+ return success;
+}
+
+bool
Instruction::Emulate (const ArchSpec &arch,
bool auto_advance_pc,
void *baton,
@@ -692,3 +746,97 @@
{
return m_instruction_list;
}
+
+//----------------------------------------------------------------------
+// Class PseudoInstruction
+//----------------------------------------------------------------------
+PseudoInstruction::PseudoInstruction () :
+ Instruction (Address(), eAddressClassUnknown),
+ m_description ()
+{
+}
+
+PseudoInstruction::~PseudoInstruction ()
+{
+}
+
+void
+PseudoInstruction::Dump (lldb_private::Stream *s,
+ uint32_t max_opcode_byte_size,
+ bool show_address,
+ bool show_bytes,
+ const lldb_private::ExecutionContext* exe_ctx,
+ bool raw)
+{
+ if (!s)
+ return;
+
+ if (show_bytes)
+ m_opcode.Dump (s, max_opcode_byte_size);
+
+ if (m_description.size() > 0)
+ s->Printf ("%s", m_description.c_str());
+ else
+ s->Printf ("<unknown>");
+
+}
+
+bool
+PseudoInstruction::DoesBranch () const
+{
+ // This is NOT a valid question for a pseudo instruction.
+ return false;
+}
+
+size_t
+PseudoInstruction::Decode (const lldb_private::Disassembler &disassembler,
+ const lldb_private::DataExtractor &data,
+ uint32_t data_offset)
+{
+ return m_opcode.GetByteSize();
+}
+
+
+void
+PseudoInstruction::SetOpcode (size_t opcode_size, void *opcode_data)
+{
+ if (!opcode_data)
+ return;
+
+ switch (opcode_size)
+ {
+ case 8:
+ {
+ uint8_t value8 = *((uint8_t *) opcode_data);
+ m_opcode.SetOpcode8 (value8);
+ break;
+ }
+ case 16:
+ {
+ uint16_t value16 = *((uint16_t *) opcode_data);
+ m_opcode.SetOpcode16 (value16);
+ break;
+ }
+ case 32:
+ {
+ uint32_t value32 = *((uint32_t *) opcode_data);
+ m_opcode.SetOpcode32 (value32);
+ break;
+ }
+ case 64:
+ {
+ uint64_t value64 = *((uint64_t *) opcode_data);
+ m_opcode.SetOpcode64 (value64);
+ break;
+ }
+ default:
+ break;
+ }
+}
+
+void
+PseudoInstruction::SetDescription (const char *description)
+{
+ if (description && strlen (description) > 0)
+ m_description = description;
+}
diff --git a/source/Plugins/Disassembler/llvm/DisassemblerLLVM.cpp b/source/Plugins/Disassembler/llvm/DisassemblerLLVM.cpp
index 5ddcd72..23a788b 100644
--- a/source/Plugins/Disassembler/llvm/DisassemblerLLVM.cpp
+++ b/source/Plugins/Disassembler/llvm/DisassemblerLLVM.cpp
@@ -367,7 +367,19 @@
break;
case 4:
- m_opcode.SetOpcode32 (data.GetU32 (&offset));
+ {
+ if (GetAddressClass() == eAddressClassCodeAlternateISA)
+ {
+ // If it is a 32-bit THUMB instruction, we need to swap the upper & lower halves.
+ uint32_t orig_bytes = data.GetU32 (&offset);
+ uint16_t upper_bits = (orig_bytes >> 16) & ((1u << 16) - 1);
+ uint16_t lower_bits = orig_bytes & ((1u << 16) - 1);
+ uint32_t swapped = (lower_bits << 16) | upper_bits;
+ m_opcode.SetOpcode32 (swapped);
+ }
+ else
+ m_opcode.SetOpcode32 (data.GetU32 (&offset));
+ }
break;
default:
diff --git a/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp b/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp
index 9b8d07e..c4a6cfe 100644
--- a/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp
+++ b/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp
@@ -10,10 +10,12 @@
#include <stdlib.h>
#include "EmulateInstructionARM.h"
+#include "EmulationStateARM.h"
#include "lldb/Core/ArchSpec.h"
#include "lldb/Core/Address.h"
#include "lldb/Core/ConstString.h"
#include "lldb/Core/PluginManager.h"
+#include "lldb/Core/Stream.h"
#include "Plugins/Process/Utility/ARMDefines.h"
#include "Plugins/Process/Utility/ARMUtils.h"
@@ -12218,6 +12220,8 @@
{ 0x0fef00f0, 0x01a00070, ARMvAll, eEncodingA1, No_VFP, eSize32, &EmulateInstructionARM::EmulateRORReg, "ror{s}<c> <Rd>, <Rn>, <Rm>"},
// mul
{ 0x0fe000f0, 0x00000090, ARMvAll, eEncodingA1, No_VFP, eSize32, &EmulateInstructionARM::EmulateMUL, "mul{s}<c> <Rd>,<R>,<Rm>" },
+
+ // subs pc, lr and related instructions
{ 0x0e10f000, 0x0210f000, ARMvAll, eEncodingA1, No_VFP, eSize32, &EmulateInstructionARM::EmulateSUBSPcLrEtc, "<opc>S<c> PC,#<const> | <Rn>,#<const>" },
{ 0x0e10f010, 0x0010f000, ARMvAll, eEncodingA2, No_VFP, eSize32, &EmulateInstructionARM::EmulateSUBSPcLrEtc, "<opc>S<c> PC,<Rn>,<Rm{,<shift>}" },
@@ -12504,8 +12508,9 @@
{ 0xffffffc0, 0x00004340, ARMV4T_ABOVE, eEncodingT1, No_VFP, eSize16, &EmulateInstructionARM::EmulateMUL, "muls <Rdm>,<Rn>,<Rdm>" },
// mul
{ 0xfff0f0f0, 0xfb00f000, ARMV6T2_ABOVE, eEncodingT2, No_VFP, eSize32, &EmulateInstructionARM::EmulateMUL, "mul<c> <Rd>,<Rn>,<Rm>" },
+
+ // subs pc, lr and related instructions
{ 0xffffff00, 0xf3de8f00, ARMV6T2_ABOVE, eEncodingT1, No_VFP, eSize32, &EmulateInstructionARM::EmulateSUBSPcLrEtc, "SUBS<c> PC, LR, #<imm8>" },
-
//----------------------------------------------------------------------
// RFE instructions *** IMPORTANT *** THESE MUST BE LISTED **BEFORE** THE LDM.. Instructions in this table;
@@ -13193,16 +13198,7 @@
ARMOpcode *opcode_data;
if (m_opcode_mode == eModeThumb)
- {
- if (m_opcode.GetType() == Opcode::eType32)
- {
- uint16_t upper_bits = Bits32 (m_opcode.GetOpcode32(), 31, 16);
- uint16_t lower_bits = Bits32 (m_opcode.GetOpcode32(), 15, 0);
- uint32_t swapped = (lower_bits << 16) | upper_bits;
- m_opcode.SetOpcode32 (swapped);
- }
opcode_data = GetThumbOpcodeForInstruction (m_opcode.GetOpcode32());
- }
else if (m_opcode_mode == eModeARM)
opcode_data = GetARMOpcodeForInstruction (m_opcode.GetOpcode32());
else
@@ -13311,3 +13307,112 @@
return true;
}
+
+bool
+EmulateInstructionARM::TestEmulation (Stream *out_stream, FILE *test_file, ArchSpec &arch)
+{
+ if (!test_file)
+ {
+ out_stream->Printf ("TestEmulation: Missing test file.\n");
+ return false;
+ }
+
+ uint32_t test_opcode;
+ if (fscanf (test_file, "%x", &test_opcode) != 1)
+ {
+ out_stream->Printf ("Test Emulation: Error reading opcode from test file.\n");
+ return false;
+ }
+
+ char buffer[256];
+ fgets (buffer, 255, test_file); // consume the newline after reading the opcode.
+
+ SetAdvancePC (true);
+
+ if (arch.GetTriple().getArch() == llvm::Triple::arm)
+ {
+ m_opcode_mode = eModeARM;
+ m_opcode.SetOpcode32 (test_opcode);
+ }
+ else if (arch.GetTriple().getArch() == llvm::Triple::thumb)
+ {
+ m_opcode_mode = eModeThumb;
+ if (test_opcode < 0x10000)
+ m_opcode.SetOpcode16 (test_opcode);
+ else
+ m_opcode.SetOpcode32 (test_opcode);
+
+ }
+ else
+ {
+ out_stream->Printf ("Test Emulation: Invalid arch.\n");
+ return false;
+ }
+
+
+ EmulationStateARM before_state;
+ EmulationStateARM after_state;
+
+ // Read Memory info & load into before_state
+ if (!fgets (buffer, 255, test_file))
+ {
+ out_stream->Printf ("Test Emulation: Error attempting to read from test file.\n");
+ return false;
+ }
+
+ if (strncmp (buffer, "Memory-Begin", 12) != 0)
+ {
+ out_stream->Printf ("Test Emulation: Cannot find Memory-Begin in test file.\n");
+ return false;
+ }
+
+ bool done = false;
+ while (!done)
+ {
+ if (fgets (buffer, 255, test_file))
+ {
+ if (strncmp (buffer, "Memory-End", 10) == 0)
+ done = true;
+ else
+ {
+ uint32_t addr;
+ uint32_t value;
+ if (sscanf (buffer, "%x %x", &addr, &value) == 2)
+ before_state.StoreToPseudoAddress ((addr_t) addr, (uint64_t) value, 4);
+ else
+ {
+ out_stream->Printf ("Test Emulation: Error attempting to sscanf address/value pair.\n");
+ return false;
+ }
+ }
+ }
+ else
+ {
+ out_stream->Printf ("Test Emulation: Error attemping to read test file.\n");
+ return false;
+ }
+ }
+
+ if (!EmulationStateARM::LoadRegisterStatesFromTestFile (test_file, before_state, after_state))
+ {
+ out_stream->Printf ("Test Emulation: Error occurred while attempting to load the register data.\n");
+ return false;
+ }
+
+ SetBaton ((void *) &before_state);
+ SetCallbacks (&EmulationStateARM::ReadPseudoMemory,
+ &EmulationStateARM::WritePseudoMemory,
+ &EmulationStateARM::ReadPseudoRegister,
+ &EmulationStateARM::WritePseudoRegister);
+
+ bool success = EvaluateInstruction ();
+ if (!success)
+ {
+ out_stream->Printf ("Test Emulation: EvaluateInstruction() failed.\n");
+ return false;
+ }
+
+ success = before_state.CompareState (after_state);
+ return success;
+}
+
diff --git a/source/Plugins/Instruction/ARM/EmulateInstructionARM.h b/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
index d4d9670..49ade99 100644
--- a/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
+++ b/source/Plugins/Instruction/ARM/EmulateInstructionARM.h
@@ -148,6 +148,9 @@
virtual bool
EvaluateInstruction ();
+
+ virtual bool
+ TestEmulation (Stream *out_stream, FILE *test_file, ArchSpec &arch);
uint32_t
ArchVersion();
diff --git a/source/Plugins/Instruction/ARM/EmulationStateARM.cpp b/source/Plugins/Instruction/ARM/EmulationStateARM.cpp
new file mode 100644
index 0000000..c3f363f
--- /dev/null
+++ b/source/Plugins/Instruction/ARM/EmulationStateARM.cpp
@@ -0,0 +1,428 @@
+//===-- EmulationStateARM.cpp -----------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "EmulationStateARM.h"
+
+#include "lldb/Core/Scalar.h"
+#include "lldb/Target/StackFrame.h"
+#include "lldb/Target/RegisterContext.h"
+
+#include "Utility/ARM_DWARF_Registers.h"
+
+using namespace lldb;
+using namespace lldb_private;
+
+EmulationStateARM::EmulationStateARM () :
+ m_gpr (),
+ m_vfp_regs (),
+ m_memory ()
+{
+ ClearPseudoRegisters();
+}
+
+EmulationStateARM::~EmulationStateARM ()
+{
+}
+
+bool
+EmulationStateARM::LoadPseudoRegistersFromFrame (StackFrame &frame)
+{
+ RegisterContext *reg_context = frame.GetRegisterContext().get();
+ Scalar value;
+ uint64_t reg_value64;
+ uint32_t reg_value32;
+
+ bool success = true;
+
+ for (int i = dwarf_r0; i < dwarf_r0 + 17; ++i)
+ {
+ uint32_t internal_reg_num = reg_context->ConvertRegisterKindToRegisterNumber (eRegisterKindDWARF, i);
+ if (reg_context->ReadRegisterValue (internal_reg_num, value))
+ {
+ reg_value32 = (uint32_t) value.GetRawBits64 (0);
+ m_gpr[i - dwarf_r0] = reg_value32;
+ }
+ else
+ success = false;
+ }
+
+ for (int i = dwarf_s0; i < dwarf_s0 + 32; ++i)
+ {
+ uint32_t internal_reg_num = reg_context->ConvertRegisterKindToRegisterNumber (eRegisterKindDWARF, i);
+ if (reg_context->ReadRegisterValue (internal_reg_num, value))
+ {
+ uint32_t idx = i - dwarf_s0;
+ reg_value32 = (uint32_t) value.GetRawBits64 (0);
+ m_vfp_regs.sd_regs[idx / 2].s_reg[idx % 2] = reg_value32;
+ }
+ else
+ success = false;
+ }
+
+ for (int i = dwarf_d0; i < dwarf_d0 + 32; ++i)
+ {
+ uint32_t internal_reg_num = reg_context->ConvertRegisterKindToRegisterNumber (eRegisterKindDWARF, i);
+ if (reg_context->ReadRegisterValue (internal_reg_num, value))
+ {
+ uint32_t idx = i - dwarf_d0;
+ reg_value64 = value.GetRawBits64 (0);
+ if (i < 16)
+ m_vfp_regs.sd_regs[idx].d_reg = reg_value64;
+ else
+ m_vfp_regs.d_regs[idx - 16] = reg_value64;
+ }
+ else
+ success = false;
+ }
+
+ return success;
+}
+
+bool
+EmulationStateARM::StorePseudoRegisterValue (uint32_t reg_num, uint64_t value)
+{
+ if ((dwarf_r0 <= reg_num) && (reg_num <= dwarf_cpsr))
+ m_gpr[reg_num - dwarf_r0] = (uint32_t) value;
+ else if ((dwarf_s0 <= reg_num) && (reg_num <= dwarf_s31))
+ {
+ uint32_t idx = reg_num - dwarf_s0;
+ m_vfp_regs.sd_regs[idx / 2].s_reg[idx % 2] = (uint32_t) value;
+ }
+ else if ((dwarf_d0 <= reg_num) && (reg_num <= dwarf_d31))
+ {
+ if ((reg_num - dwarf_d0) < 16)
+ {
+ m_vfp_regs.sd_regs[reg_num - dwarf_d0].d_reg = value;
+ }
+ else
+ m_vfp_regs.d_regs[reg_num - dwarf_d16] = value;
+ }
+ else
+ return false;
+
+ return true;
+}
+
+uint64_t
+EmulationStateARM::ReadPseudoRegisterValue (uint32_t reg_num, bool &success)
+{
+ uint64_t value = 0;
+ success = true;
+
+ if ((dwarf_r0 <= reg_num) && (reg_num <= dwarf_cpsr))
+ value = m_gpr[reg_num - dwarf_r0];
+ else if ((dwarf_s0 <= reg_num) && (reg_num <= dwarf_s31))
+ {
+ uint32_t idx = reg_num - dwarf_s0;
+ value = m_vfp_regs.sd_regs[idx / 2].s_reg[idx % 2];
+ }
+ else if ((dwarf_d0 <= reg_num) && (reg_num <= dwarf_d31))
+ {
+ if ((reg_num - dwarf_d0) < 16)
+ value = m_vfp_regs.sd_regs[reg_num - dwarf_d0].d_reg;
+ else
+ value = m_vfp_regs.d_regs[reg_num - dwarf_d16];
+ }
+ else
+ success = false;
+
+ return value;
+}
+
+void
+EmulationStateARM::ClearPseudoRegisters ()
+{
+ for (int i = 0; i < 17; ++i)
+ m_gpr[i] = 0;
+
+ for (int i = 0; i < 16; ++i)
+ m_vfp_regs.sd_regs[i].d_reg = 0;
+
+ for (int i = 0; i < 16; ++i)
+ m_vfp_regs.d_regs[i] = 0;
+}
+
+void
+EmulationStateARM::ClearPseudoMemory ()
+{
+ m_memory.clear();
+}
+
+bool
+EmulationStateARM::StoreToPseudoAddress (lldb::addr_t p_address, uint64_t value, uint32_t size)
+{
+ if (size > 8)
+ return false;
+
+ if (size <= 4)
+ m_memory[p_address] = value;
+ else if (size == 8)
+ {
+ m_memory[p_address] = (value << 32) >> 32;
+ m_memory[p_address + 4] = value << 32;
+ }
+ return true;
+}
+
+uint32_t
+EmulationStateARM::ReadFromPseudoAddress (lldb::addr_t p_address, uint32_t size, bool &success)
+{
+ std::map<lldb::addr_t,uint32_t>::iterator pos;
+ uint32_t ret_val = 0;
+
+ success = true;
+ pos = m_memory.find(p_address);
+ if (pos != m_memory.end())
+ ret_val = pos->second;
+ else
+ success = false;
+
+ return ret_val;
+}
+
+size_t
+EmulationStateARM::ReadPseudoMemory (void *baton,
+ const EmulateInstruction::Context &context,
+ lldb::addr_t addr,
+ void *dst,
+ size_t length)
+{
+ if (!baton)
+ return 0;
+
+ bool success = true;
+ EmulationStateARM *pseudo_state = (EmulationStateARM *) baton;
+ if (length <= 4)
+ {
+ uint32_t value = pseudo_state->ReadFromPseudoAddress (addr, length, success);
+ if (!success)
+ return 0;
+
+ *((uint32_t *) dst) = value;
+ }
+ else if (length == 8)
+ {
+ uint32_t value1 = pseudo_state->ReadFromPseudoAddress (addr, 4, success);
+ if (!success)
+ return 0;
+
+ uint32_t value2 = pseudo_state->ReadFromPseudoAddress (addr + 4, 4, success);
+ if (!success)
+ return 0;
+
+ uint64_t value64 = value2;
+ value64 = (value64 << 32) | value1;
+ *((uint64_t *) dst) = value64;
+ }
+ else
+ success = false;
+
+ if (success)
+ return length;
+
+ return 0;
+}
+
+size_t
+EmulationStateARM::WritePseudoMemory (void *baton,
+ const EmulateInstruction::Context &context,
+ lldb::addr_t addr,
+ const void *dst,
+ size_t length)
+{
+ if (!baton)
+ return 0;
+
+ bool success;
+ EmulationStateARM *pseudo_state = (EmulationStateARM *) baton;
+ uint64_t value = *((uint64_t *) dst);
+ success = pseudo_state->StoreToPseudoAddress (addr, value, length);
+ if (success)
+ return length;
+
+ return 0;
+}
+
+bool
+EmulationStateARM::ReadPseudoRegister (void *baton,
+ uint32_t reg_kind,
+ uint32_t reg_num,
+ uint64_t ®_value)
+{
+ if (!baton)
+ return false;
+
+ bool success = true;
+ EmulationStateARM *pseudo_state = (EmulationStateARM *) baton;
+
+ if (reg_kind == eRegisterKindGeneric)
+ {
+ switch (reg_num)
+ {
+ case LLDB_REGNUM_GENERIC_PC:
+ reg_num = dwarf_pc; break;
+ case LLDB_REGNUM_GENERIC_SP:
+ reg_num = dwarf_sp; break;
+ case LLDB_REGNUM_GENERIC_FLAGS:
+ reg_num = dwarf_cpsr; break;
+ case LLDB_REGNUM_GENERIC_RA:
+ reg_num = dwarf_lr; break;
+ default:
+ break;
+ }
+ }
+ reg_value = pseudo_state->ReadPseudoRegisterValue (reg_num, success);
+
+ return success;
+
+}
+
+bool
+EmulationStateARM::WritePseudoRegister (void *baton,
+ const EmulateInstruction::Context &context,
+ uint32_t reg_kind,
+ uint32_t reg_num,
+ uint64_t reg_value)
+{
+ if (!baton)
+ return false;
+
+ if (reg_kind == eRegisterKindGeneric)
+ {
+ switch (reg_num)
+ {
+ case LLDB_REGNUM_GENERIC_PC:
+ reg_num = dwarf_pc; break;
+ case LLDB_REGNUM_GENERIC_SP:
+ reg_num = dwarf_sp; break;
+ case LLDB_REGNUM_GENERIC_FLAGS:
+ reg_num = dwarf_cpsr; break;
+ case LLDB_REGNUM_GENERIC_RA:
+ reg_num = dwarf_lr; break;
+ default:
+ break;
+ }
+ }
+
+ EmulationStateARM *pseudo_state = (EmulationStateARM *) baton;
+ return pseudo_state->StorePseudoRegisterValue (reg_num, reg_value);
+}
+
+bool
+EmulationStateARM::LoadState (FILE *test_file)
+{
+ if (!test_file)
+ return false;
+
+ uint32_t num_regs;
+ uint32_t value32;
+ uint64_t value64;
+
+ /* Load general register state */
+ if (fscanf (test_file, "%d", &num_regs) != 1)
+ return false;
+
+
+ for (int i = 0; i < num_regs; ++i)
+ {
+ if (fscanf (test_file, "%x", &value32) == 1)
+ {
+ if (i < 17) // We only have 17 general registers, but if for some reason the file contains more
+ // we need to read them all, to get to the next set of register values.
+ m_gpr[i] = value32;
+ }
+ else
+ return false;
+ }
+
+ /* Load d register state */
+ if (fscanf (test_file, "%d", &num_regs) != 1)
+ return false;
+
+ for (int i = 0; i < num_regs; ++i)
+ {
+ if (fscanf (test_file, "%x", &value64) == 1)
+ {
+ if (i < 32)
+ {
+ if (i < 16)
+ m_vfp_regs.sd_regs[i].d_reg = value64;
+ else
+ m_vfp_regs.d_regs[i - 16] = value64;
+ }
+ }
+ else
+ return false;
+ }
+
+ /* Load s register state */
+ if (fscanf (test_file, "%d", &num_regs) != 1)
+ return false;
+
+ for (int i = 0; i < num_regs; ++i)
+ {
+ if (fscanf (test_file, "%x", &value32) == 1)
+ m_vfp_regs.sd_regs[i / 2].s_reg[i % 2] = value32;
+ else
+ return false;
+ }
+
+ return true;
+}
+
+bool
+EmulationStateARM::LoadRegisterStatesFromTestFile (FILE *test_file,
+ EmulationStateARM &before_state,
+ EmulationStateARM &after_state)
+{
+ if (test_file)
+ {
+ if (before_state.LoadState (test_file))
+ return after_state.LoadState (test_file);
+ }
+
+ return false;
+}
+
+bool
+EmulationStateARM::CompareState (EmulationStateARM &other_state)
+{
+ bool match = true;
+
+ for (int i = 0; match && i < 17; ++i)
+ {
+ if (m_gpr[i] != other_state.m_gpr[i])
+ match = false;
+ }
+
+ for (int i = 0; match && i < 16; ++i)
+ {
+ if (m_vfp_regs.sd_regs[i].s_reg[0] != other_state.m_vfp_regs.sd_regs[i].s_reg[0])
+ match = false;
+
+ if (m_vfp_regs.sd_regs[i].s_reg[1] != other_state.m_vfp_regs.sd_regs[i].s_reg[1])
+ match = false;
+ }
+
+ for (int i = 0; match && i < 32; ++i)
+ {
+ if (i < 16)
+ {
+ if (m_vfp_regs.sd_regs[i].d_reg != other_state.m_vfp_regs.sd_regs[i].d_reg)
+ match = false;
+ }
+ else
+ {
+ if (m_vfp_regs.d_regs[i - 16] != other_state.m_vfp_regs.d_regs[i - 16])
+ match = false;
+ }
+ }
+
+ return match;
+}
diff --git a/source/Plugins/Instruction/ARM/EmulationStateARM.h b/source/Plugins/Instruction/ARM/EmulationStateARM.h
new file mode 100644
index 0000000..8ddfbed
--- /dev/null
+++ b/source/Plugins/Instruction/ARM/EmulationStateARM.h
@@ -0,0 +1,105 @@
+//===-- lldb_EmulationStateARM.h --------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef lldb_EmulationStateARM_h_
+#define lldb_EmulationStateARM_h_
+
+#include <map>
+
+#include "lldb/Core/EmulateInstruction.h"
+#include "lldb/Core/Opcode.h"
+
+namespace lldb_private {
+
+class EmulationStateARM {
+public:
+
+ EmulationStateARM ();
+
+ virtual
+ ~EmulationStateARM ();
+
+ bool
+ StorePseudoRegisterValue (uint32_t reg_num, uint64_t value);
+
+ uint64_t
+ ReadPseudoRegisterValue (uint32_t reg_num, bool &success);
+
+ bool
+ StoreToPseudoAddress (lldb::addr_t p_address, uint64_t value, uint32_t size);
+
+ uint32_t
+ ReadFromPseudoAddress (lldb::addr_t p_address, uint32_t size, bool &success);
+
+ void
+ ClearPseudoRegisters ();
+
+ void
+ ClearPseudoMemory ();
+
+ bool
+ LoadPseudoRegistersFromFrame (StackFrame &frame);
+
+ bool
+ LoadState (FILE *test_file);
+
+ static bool
+ LoadRegisterStatesFromTestFile (FILE *test_file, EmulationStateARM &before_state, EmulationStateARM &after_state);
+
+ bool
+ CompareState (EmulationStateARM &other_state);
+
+ static size_t
+ ReadPseudoMemory (void *baton,
+ const EmulateInstruction::Context &context,
+ lldb::addr_t addr,
+ void *dst,
+ size_t length);
+
+ static size_t
+ WritePseudoMemory (void *baton,
+ const EmulateInstruction::Context &context,
+ lldb::addr_t addr,
+ const void *dst,
+ size_t length);
+
+ static bool
+ ReadPseudoRegister (void *baton,
+ uint32_t reg_kind,
+ uint32_t reg_num,
+ uint64_t ®_value);
+
+ static bool
+ WritePseudoRegister (void *baton,
+ const EmulateInstruction::Context &context,
+ uint32_t reg_kind,
+ uint32_t reg_num,
+ uint64_t reg_value);
+private:
+ uint32_t m_gpr[17];
+ struct sd_regs
+ {
+ union
+ {
+ uint32_t s_reg[2];
+ uint64_t d_reg;
+ } sd_regs[16]; // sregs 0 - 31 & dregs 0 - 15
+
+ uint64_t d_regs[16]; // dregs 16-31
+
+ } m_vfp_regs;
+
+ std::map<lldb::addr_t, uint32_t> m_memory; // Eventually will want to change uint32_t to a data buffer heap type.
+
+ DISALLOW_COPY_AND_ASSIGN (EmulationStateARM);
+};
+
+} // namespace lldb_private
+
+#endif // lldb_EmulationStateARM_h_
diff --git a/test/arm_emulation/TestEmulations.py b/test/arm_emulation/TestEmulations.py
new file mode 100644
index 0000000..3f2c6dd
--- /dev/null
+++ b/test/arm_emulation/TestEmulations.py
@@ -0,0 +1,59 @@
+"""
+Test some ARM instruction emulation.
+"""
+
+import os, time
+import unittest2
+import lldb
+from lldbtest import *
+
+class ARMEmulationTestCase(TestBase):
+
+ mydir = "arm_emulation"
+
+ def test_thumb_emulations (self):
+ current_dir = os.getcwd();
+ test_dir = os.path.join (current_dir, "test-files")
+ files = os.listdir (test_dir)
+ thumb_files = list()
+ for f in files:
+ if '-thumb.dat' in f:
+ thumb_files.append (f)
+
+ for f in thumb_files:
+ test_file = os.path.join (test_dir, f)
+ print '\nRunning test ' + f
+ self.run_a_single_test (test_file)
+
+
+ def test_arm_emulations (self):
+ current_dir = os.getcwd();
+ test_dir = os.path.join (current_dir, "test-files")
+ files = os.listdir (test_dir)
+ arm_files = list()
+ for f in files:
+ if '-arm.dat' in f:
+ arm_files.append (f)
+
+ for f in arm_files:
+ test_file = os.path.join (test_dir, f)
+ print '\nRunning test ' + f
+ self.run_a_single_test (test_file)
+
+ def run_a_single_test (self, filename):
+ insn = lldb.SBInstruction ();
+ stream = lldb.SBStream ();
+ success = insn.TestEmulation (stream, filename);
+ output = stream.GetData();
+ if not success:
+ print output
+
+ self.assertTrue ('Emulation test succeeded.' in output)
+ self.assertTrue (success == True)
+
+if __name__ == '__main__':
+ import atexit
+ lldb.SBDebugger.Initialize()
+ atexit.register(lambda: lldb.SBDebugger.Terminate())
+ unittest2.main()
+
diff --git a/test/arm_emulation/test-files/test-add-1-arm.dat b/test/arm_emulation/test-files/test-add-1-arm.dat
new file mode 100644
index 0000000..875ca88
--- /dev/null
+++ b/test/arm_emulation/test-files/test-add-1-arm.dat
@@ -0,0 +1,129 @@
+# "add r0, r0, r15"
+arm-apple-darwin
+0xe080000f
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00003000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-add-1-thumb.dat b/test/arm_emulation/test-files/test-add-1-thumb.dat
new file mode 100644
index 0000000..418bb7f
--- /dev/null
+++ b/test/arm_emulation/test-files/test-add-1-thumb.dat
@@ -0,0 +1,129 @@
+# "add r0, r13, #0"
+thumb-apple-darwin
+0xa800
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe50
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-add-10-thumb.dat b/test/arm_emulation/test-files/test-add-10-thumb.dat
new file mode 100644
index 0000000..b62c4b5
--- /dev/null
+++ b/test/arm_emulation/test-files/test-add-10-thumb.dat
@@ -0,0 +1,129 @@
+# "add sp, r13"
+thumb-apple-darwin
+0x44ed
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x5fbffca0
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-add-11-thumb.dat b/test/arm_emulation/test-files/test-add-11-thumb.dat
new file mode 100644
index 0000000..a40c5ac
--- /dev/null
+++ b/test/arm_emulation/test-files/test-add-11-thumb.dat
@@ -0,0 +1,129 @@
+# "add sp, r15"
+thumb-apple-darwin
+0x44fd
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fe02e50
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-add-12-thumb.dat b/test/arm_emulation/test-files/test-add-12-thumb.dat
new file mode 100644
index 0000000..98e5670
--- /dev/null
+++ b/test/arm_emulation/test-files/test-add-12-thumb.dat
@@ -0,0 +1,129 @@
+# "add sp, r8"
+thumb-apple-darwin
+0x44c5
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-add-2-arm.dat b/test/arm_emulation/test-files/test-add-2-arm.dat
new file mode 100644
index 0000000..8c51c1b
--- /dev/null
+++ b/test/arm_emulation/test-files/test-add-2-arm.dat
@@ -0,0 +1,129 @@
+# "add r0, r13, #0"
+arm-apple-darwin
+0xe28d0000
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x2fdffe58
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-add-2-thumb.dat b/test/arm_emulation/test-files/test-add-2-thumb.dat
new file mode 100644
index 0000000..c32ac8f
--- /dev/null
+++ b/test/arm_emulation/test-files/test-add-2-thumb.dat
@@ -0,0 +1,129 @@
+# "add r0, sp, r0"
+thumb-apple-darwin
+0x4468
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe50
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-add-3-arm.dat b/test/arm_emulation/test-files/test-add-3-arm.dat
new file mode 100644
index 0000000..8c19db2
--- /dev/null
+++ b/test/arm_emulation/test-files/test-add-3-arm.dat
@@ -0,0 +1,129 @@
+# "add r0, r1, r0, lsl #2"
+arm-apple-darwin
+0xe0810100
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe48
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe48
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000001
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe48
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe48
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-add-3-thumb.dat b/test/arm_emulation/test-files/test-add-3-thumb.dat
new file mode 100644
index 0000000..e98dc38
--- /dev/null
+++ b/test/arm_emulation/test-files/test-add-3-thumb.dat
@@ -0,0 +1,129 @@
+# "add.w r10, r13, #31"
+thumb-apple-darwin
+0xf10d0a1f
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe40
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe40
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe40
+0x00000008
+0x00000009
+0x2fdffe5f
+0x0000000b
+0x0000000c
+0x2fdffe40
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-add-4-arm.dat b/test/arm_emulation/test-files/test-add-4-arm.dat
new file mode 100644
index 0000000..05f6d6f
--- /dev/null
+++ b/test/arm_emulation/test-files/test-add-4-arm.dat
@@ -0,0 +1,129 @@
+# "add r0, r2, r7, lsl r1"
+arm-apple-darwin
+0xe0820117
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe40
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe40
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x5fbffc82
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe40
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe40
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-add-4-thumb.dat b/test/arm_emulation/test-files/test-add-4-thumb.dat
new file mode 100644
index 0000000..641b22c
--- /dev/null
+++ b/test/arm_emulation/test-files/test-add-4-thumb.dat
@@ -0,0 +1,129 @@
+# "add r3, r13, #16"
+thumb-apple-darwin
+0xab04
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe48
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe48
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x2fdffe58
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe48
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe48
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-add-5-arm.dat b/test/arm_emulation/test-files/test-add-5-arm.dat
new file mode 100644
index 0000000..626d58e
--- /dev/null
+++ b/test/arm_emulation/test-files/test-add-5-arm.dat
@@ -0,0 +1,129 @@
+# "add r10, r13, #31"
+arm-apple-darwin
+0xe28da01f
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x2fdffe6f
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-add-5-thumb.dat b/test/arm_emulation/test-files/test-add-5-thumb.dat
new file mode 100644
index 0000000..9ead5f1
--- /dev/null
+++ b/test/arm_emulation/test-files/test-add-5-thumb.dat
@@ -0,0 +1,129 @@
+# "add r3, sp, r3"
+thumb-apple-darwin
+0x446b
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x2fdffe53
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-add-6-arm.dat b/test/arm_emulation/test-files/test-add-6-arm.dat
new file mode 100644
index 0000000..1a27662
--- /dev/null
+++ b/test/arm_emulation/test-files/test-add-6-arm.dat
@@ -0,0 +1,129 @@
+# "add r12, r13, #24"
+arm-apple-darwin
+0xe28dc018
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x2fdffe68
+0x2fdffe50
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-add-6-thumb.dat b/test/arm_emulation/test-files/test-add-6-thumb.dat
new file mode 100644
index 0000000..6f4f50f
--- /dev/null
+++ b/test/arm_emulation/test-files/test-add-6-thumb.dat
@@ -0,0 +1,129 @@
+# "add r5, r13, #32"
+thumb-apple-darwin
+0xad08
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe48
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe48
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x2fdffe68
+0x00000006
+0x2fdffe48
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe48
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-add-7-arm.dat b/test/arm_emulation/test-files/test-add-7-arm.dat
new file mode 100644
index 0000000..7668d4d
--- /dev/null
+++ b/test/arm_emulation/test-files/test-add-7-arm.dat
@@ -0,0 +1,129 @@
+# "add r6, sp, #8"
+arm-apple-darwin
+0xe28d6008
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x2fdffe68
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-add-7-thumb.dat b/test/arm_emulation/test-files/test-add-7-thumb.dat
new file mode 100644
index 0000000..09d844d
--- /dev/null
+++ b/test/arm_emulation/test-files/test-add-7-thumb.dat
@@ -0,0 +1,129 @@
+# "add sp, #16"
+thumb-apple-darwin
+0xb004
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe68
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-add-8-arm.dat b/test/arm_emulation/test-files/test-add-8-arm.dat
new file mode 100644
index 0000000..43f2ab6
--- /dev/null
+++ b/test/arm_emulation/test-files/test-add-8-arm.dat
@@ -0,0 +1,129 @@
+# "add sp, r8"
+arm-apple-darwin
+0xe08dd008
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe68
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-add-8-thumb.dat b/test/arm_emulation/test-files/test-add-8-thumb.dat
new file mode 100644
index 0000000..ec5683b
--- /dev/null
+++ b/test/arm_emulation/test-files/test-add-8-thumb.dat
@@ -0,0 +1,129 @@
+# "add sp, #4"
+thumb-apple-darwin
+0xb001
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe5c
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-add-9-thumb.dat b/test/arm_emulation/test-files/test-add-9-thumb.dat
new file mode 100644
index 0000000..efa92ac
--- /dev/null
+++ b/test/arm_emulation/test-files/test-add-9-thumb.dat
@@ -0,0 +1,129 @@
+# "add sp, r10"
+thumb-apple-darwin
+0x44d5
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe5a
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-bic-1-arm.dat b/test/arm_emulation/test-files/test-bic-1-arm.dat
new file mode 100644
index 0000000..2496826
--- /dev/null
+++ b/test/arm_emulation/test-files/test-bic-1-arm.dat
@@ -0,0 +1,129 @@
+# "bic r4, r9"
+arm-apple-darwin
+0xe1c44009
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-bic-1-thumb.dat b/test/arm_emulation/test-files/test-bic-1-thumb.dat
new file mode 100644
index 0000000..75c948a
--- /dev/null
+++ b/test/arm_emulation/test-files/test-bic-1-thumb.dat
@@ -0,0 +1,129 @@
+# "bics r4, r6"
+thumb-apple-darwin
+0x43b4
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000000
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldmia-1-arm.dat b/test/arm_emulation/test-files/test-ldmia-1-arm.dat
new file mode 100644
index 0000000..28cc000
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldmia-1-arm.dat
@@ -0,0 +1,131 @@
+# "ldmia r0!, {r1, r3}"
+arm-apple-darwin
+0xe8b0000a
+Memory-Begin
+0x2fdffe50 0x0
+0x2fdffe54 0x2e7c
+Memory-End
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x0000001f
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x2fdffe58
+0x00000000
+0x2fdffe70
+0x00002e7c
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldmia-1-thumb.dat b/test/arm_emulation/test-files/test-ldmia-1-thumb.dat
new file mode 100644
index 0000000..4a00dce
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldmia-1-thumb.dat
@@ -0,0 +1,131 @@
+# "ldmia r0!, {r1, r3}"
+thumb-apple-darwin
+0xc80a
+Memory-Begin
+0x2fdffe40 0x0
+0x2fdffe44 0x2f84
+Memory-End
+17
+0x2fdffe40
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffe40
+0x2fdffec0
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdffe40
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe48
+0x00000000
+0x2fdffe60
+0x00002f84
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffe40
+0x2fdffec0
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdffe40
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldmia-2-arm.dat b/test/arm_emulation/test-files/test-ldmia-2-arm.dat
new file mode 100644
index 0000000..0a12cb6
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldmia-2-arm.dat
@@ -0,0 +1,135 @@
+# "ldmia r0!, {r2, r4, r6, r8, r10, r12}"
+arm-apple-darwin
+0xe8b01554
+Memory-Begin
+0x2fdffe20 0x0
+0x2fdffe24 0x2e7c
+0x2fdffe28 0x1
+0x2fdffe2c 0x2fdffe84
+0x2fdffe30 0x0
+0x2fdffe34 0x0
+Memory-End
+17
+0x2fdffe20
+0x2fdffe30
+0x2fdffe40
+0x0000001f
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe20
+0x2fdffea0
+0x2fdffeb0
+0x2fdffec0
+0x2fdffed0
+0x2fdffee0
+0x2fdffe20
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x2fdffe38
+0x2fdffe30
+0x00000000
+0x0000001f
+0x00002e7c
+0x2fdffe70
+0x00000001
+0x2fdffe20
+0x2fdffe84
+0x2fdffeb0
+0x00000000
+0x2fdffed0
+0x00000000
+0x2fdffe20
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldmia-2-thumb.dat b/test/arm_emulation/test-files/test-ldmia-2-thumb.dat
new file mode 100644
index 0000000..b0cb45e
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldmia-2-thumb.dat
@@ -0,0 +1,135 @@
+# "ldmia.w r0!,{r2,r4,r6,r8,r10,r12}"
+thumb-apple-darwin
+0xe8b01554
+Memory-Begin
+0x2fdffe50 0x0
+0x2fdffe54 0x2f80
+0x2fdffe58 0x1
+0x2fdffe5c 0x2fdffeac
+0x2fdffe60 0x0
+0x2fdffe64 0x0
+Memory-End
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe68
+0x2fdffe60
+0x00000000
+0x2fdffe80
+0x00002f80
+0x2fdffea0
+0x00000001
+0x2fdffe50
+0x2fdffeac
+0x2fdffee0
+0x00000000
+0x2fdfff00
+0x00000000
+0x2fdffe50
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldmia-3-arm.dat b/test/arm_emulation/test-files/test-ldmia-3-arm.dat
new file mode 100644
index 0000000..6daa3b4
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldmia-3-arm.dat
@@ -0,0 +1,131 @@
+# "ldmia r14!, {r1, r3}"
+arm-apple-darwin
+0xe8be000a
+Memory-Begin
+0x2e7c 0xe59fc00c
+0x2e80 0xe08fc00c
+Memory-End
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x0000001f
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x2fdffe50
+0xe59fc00c
+0x2fdffe70
+0xe08fc00c
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002e84
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldmia-3-thumb.dat b/test/arm_emulation/test-files/test-ldmia-3-thumb.dat
new file mode 100644
index 0000000..5d2a4b2
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldmia-3-thumb.dat
@@ -0,0 +1,131 @@
+# "ldmia.w r14!, {r1, r3}"
+thumb-apple-darwin
+0xe8be000a
+Memory-Begin
+0x2f80 0xe59fc00c
+0x2f84 0xe08fc00c
+Memory-End
+17
+0x2fdffe78
+0x2fdffe88
+0x2fdffe98
+0x2fdffea8
+0x2fdffeb8
+0x2fdffec8
+0x2fdffed8
+0x2fdffe78
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdfff28
+0x2fdfff38
+0x2fdffe78
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe78
+0xe59fc00c
+0x2fdffe98
+0xe08fc00c
+0x2fdffeb8
+0x2fdffec8
+0x2fdffed8
+0x2fdffe78
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdfff28
+0x2fdfff38
+0x2fdffe78
+0x00002f88
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldr-1-arm.dat b/test/arm_emulation/test-files/test-ldr-1-arm.dat
new file mode 100644
index 0000000..0199787
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldr-1-arm.dat
@@ -0,0 +1,130 @@
+# "ldr r0, [pc, #+24]"
+arm-apple-darwin
+0xe59f0018
+Memory-Begin
+0x3018 0x3030
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00003030
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldr-1-thumb.dat b/test/arm_emulation/test-files/test-ldr-1-thumb.dat
new file mode 100644
index 0000000..1e458e9
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldr-1-thumb.dat
@@ -0,0 +1,130 @@
+# "ldr r0, [pc, #12]"
+thumb-apple-darwin
+0x4803
+Memory-Begin
+0x300c 0x3024
+Memory-End
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00003024
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldr-10-thumb.dat b/test/arm_emulation/test-files/test-ldr-10-thumb.dat
new file mode 100644
index 0000000..23ca27f
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldr-10-thumb.dat
@@ -0,0 +1,130 @@
+# "ldr.w r10,[ pc, #4]"
+thumb-apple-darwin
+0xf8dfa004
+Memory-Begin
+0x3000 0x2fe01000
+Memory-End
+17
+0x2fdffe48
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x2fdffe88
+0x2fdffe98
+0x2fdffea8
+0x2fdffe48
+0x2fdffec8
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdffe48
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe48
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x2fdffe88
+0x2fdffe98
+0x2fdffea8
+0x2fdffe48
+0x2fdffec8
+0x2fdffed8
+0x2fe01000
+0x2fdffef8
+0x2fdfff08
+0x2fdffe48
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldr-11-thumb.dat b/test/arm_emulation/test-files/test-ldr-11-thumb.dat
new file mode 100644
index 0000000..095a792
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldr-11-thumb.dat
@@ -0,0 +1,130 @@
+# "ldr.w r8, [pc , #0]"
+thumb-apple-darwin
+0xf8df8000
+Memory-Begin
+0x2ffc 0xa0e1defe
+Memory-End
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0xa0e1defe
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldr-12-thumb.dat b/test/arm_emulation/test-files/test-ldr-12-thumb.dat
new file mode 100644
index 0000000..b092c0a
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldr-12-thumb.dat
@@ -0,0 +1,130 @@
+# "ldr.w r9, [pc, #-4]"
+thumb-apple-darwin
+0xf85f9004
+Memory-Begin
+0x2fec 0x9004f85f
+Memory-End
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x9004f85f
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldr-2-arm.dat b/test/arm_emulation/test-files/test-ldr-2-arm.dat
new file mode 100644
index 0000000..69f2f53
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldr-2-arm.dat
@@ -0,0 +1,130 @@
+# "ldr r0, [pc, #256]"
+arm-apple-darwin
+0xe59f0100
+Memory-Begin
+0x3100 0x0
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldr-2-thumb.dat b/test/arm_emulation/test-files/test-ldr-2-thumb.dat
new file mode 100644
index 0000000..52561d1
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldr-2-thumb.dat
@@ -0,0 +1,130 @@
+# "ldr r0, [pc, #+24]"
+thumb-apple-darwin
+0x4806
+Memory-Begin
+0x3018 0x3030
+Memory-End
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00003030
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldr-3-arm.dat b/test/arm_emulation/test-files/test-ldr-3-arm.dat
new file mode 100644
index 0000000..f3c6513
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldr-3-arm.dat
@@ -0,0 +1,130 @@
+# "ldr r0, [r13, #+24]"
+arm-apple-darwin
+0xe59d0018
+Memory-Begin
+0x2fdffe70 0x2fdffe80
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x2fdffe80
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldr-3-thumb.dat b/test/arm_emulation/test-files/test-ldr-3-thumb.dat
new file mode 100644
index 0000000..7cb5835
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldr-3-thumb.dat
@@ -0,0 +1,130 @@
+# "ldr r0, [pc, #256]"
+thumb-apple-darwin
+0x4840
+Memory-Begin
+0x3100 0x0
+Memory-End
+17
+0x2fdffe48
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x2fdffe88
+0x2fdffe98
+0x2fdffea8
+0x2fdffe48
+0x2fdffec8
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdffe48
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x2fdffe88
+0x2fdffe98
+0x2fdffea8
+0x2fdffe48
+0x2fdffec8
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdffe48
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldr-4-arm.dat b/test/arm_emulation/test-files/test-ldr-4-arm.dat
new file mode 100644
index 0000000..a09e4a3
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldr-4-arm.dat
@@ -0,0 +1,130 @@
+# "ldr r1, [r5, #16]"
+arm-apple-darwin
+0xe5951010
+Memory-Begin
+0x2fdffeb8 0x7365742d
+Memory-End
+17
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x0000001f
+0x2fdffe98
+0x2fdffea8
+0x2fdffeb8
+0x2fdffe58
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x2fdffe58
+0x7365742d
+0x2fdffe78
+0x0000001f
+0x2fdffe98
+0x2fdffea8
+0x2fdffeb8
+0x2fdffe58
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdffe58
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldr-4-thumb.dat b/test/arm_emulation/test-files/test-ldr-4-thumb.dat
new file mode 100644
index 0000000..12fdcc9
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldr-4-thumb.dat
@@ -0,0 +1,130 @@
+# "ldr r0, [r13, #+24]"
+thumb-apple-darwin
+0x9806
+Memory-Begin
+0x2fdffe60 0x2fdffe70
+Memory-End
+17
+0x2fdffe48
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x2fdffe88
+0x2fdffe98
+0x2fdffea8
+0x2fdffe48
+0x2fdffec8
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdffe48
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe70
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x2fdffe88
+0x2fdffe98
+0x2fdffea8
+0x2fdffe48
+0x2fdffec8
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdffe48
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldr-5-arm.dat b/test/arm_emulation/test-files/test-ldr-5-arm.dat
new file mode 100644
index 0000000..d2bbe1e
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldr-5-arm.dat
@@ -0,0 +1,130 @@
+# "ldr r2, [r0]"
+arm-apple-darwin
+0xe5902000
+Memory-Begin
+0x2fdffe60 0x0
+Memory-End
+17
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x0000001f
+0x2fdffea0
+0x2fdffeb0
+0x2fdffec0
+0x2fdffe60
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdfff20
+0x2fdffe60
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x2fdffe60
+0x2fdffe70
+0x00000000
+0x0000001f
+0x2fdffea0
+0x2fdffeb0
+0x2fdffec0
+0x2fdffe60
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdfff20
+0x2fdffe60
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldr-5-thumb.dat b/test/arm_emulation/test-files/test-ldr-5-thumb.dat
new file mode 100644
index 0000000..a3522e5
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldr-5-thumb.dat
@@ -0,0 +1,130 @@
+# "ldr r1, [pc, #0]"
+thumb-apple-darwin
+0x4900
+Memory-Begin
+0x3000 0x2fe01000
+Memory-End
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe50
+0x2fe01000
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldr-6-arm.dat b/test/arm_emulation/test-files/test-ldr-6-arm.dat
new file mode 100644
index 0000000..2364f4b
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldr-6-arm.dat
@@ -0,0 +1,130 @@
+# "ldr r2, [r6], +r8, lsl #2"
+arm-apple-darwin
+0xe6962108
+Memory-Begin
+0x2fdffea8 0x7365742d
+Memory-End
+17
+0x2fdffe48
+0x2fdffe58
+0x2fdffe68
+0x0000001f
+0x2fdffe88
+0x2fdffe98
+0x2fdffea8
+0x2fdffe48
+0x2fdffec8
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdffe48
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x2fdffe48
+0x2fdffe58
+0x7365742d
+0x0000001f
+0x2fdffe88
+0x2fdffe98
+0xef5ff9c8
+0x2fdffe48
+0x2fdffec8
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdffe48
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldr-6-thumb.dat b/test/arm_emulation/test-files/test-ldr-6-thumb.dat
new file mode 100644
index 0000000..8a6629d
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldr-6-thumb.dat
@@ -0,0 +1,130 @@
+# "ldr r1, [r5, #16]"
+thumb-apple-darwin
+0x6929
+Memory-Begin
+0x2fdffeb0 0x65742d62
+Memory-End
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe50
+0x65742d62
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldr-7-arm.dat b/test/arm_emulation/test-files/test-ldr-7-arm.dat
new file mode 100644
index 0000000..e994a0a
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldr-7-arm.dat
@@ -0,0 +1,130 @@
+# "ldr r2, [sp, #24]"
+arm-apple-darwin
+0xe59d2018
+Memory-Begin
+0x2fdffe70 0x0
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000000
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldr-7-thumb.dat b/test/arm_emulation/test-files/test-ldr-7-thumb.dat
new file mode 100644
index 0000000..8612496
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldr-7-thumb.dat
@@ -0,0 +1,130 @@
+# "ldr r2, [r0]"
+thumb-apple-darwin
+0x6802
+Memory-Begin
+0x2fdffe58 0x0
+Memory-End
+17
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x2fdffe88
+0x2fdffe98
+0x2fdffea8
+0x2fdffeb8
+0x2fdffe58
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe58
+0x2fdffe68
+0x00000000
+0x2fdffe88
+0x2fdffe98
+0x2fdffea8
+0x2fdffeb8
+0x2fdffe58
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdffe58
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldr-8-arm.dat b/test/arm_emulation/test-files/test-ldr-8-arm.dat
new file mode 100644
index 0000000..a82db06
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldr-8-arm.dat
@@ -0,0 +1,130 @@
+# "ldr r3, [r11, #-8]"
+arm-apple-darwin
+0xe51b3008
+Memory-Begin
+0x2fdfff00 0x63387830
+Memory-End
+17
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x0000001f
+0x2fdffe98
+0x2fdffea8
+0x2fdffeb8
+0x2fdffe58
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x63387830
+0x2fdffe98
+0x2fdffea8
+0x2fdffeb8
+0x2fdffe58
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdffe58
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldr-8-thumb.dat b/test/arm_emulation/test-files/test-ldr-8-thumb.dat
new file mode 100644
index 0000000..e71d05f
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldr-8-thumb.dat
@@ -0,0 +1,130 @@
+# "ldr r2, [sp, #24]"
+thumb-apple-darwin
+0x9a06
+Memory-Begin
+0x2fdffe68 0x2fdffe78
+Memory-End
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe78
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldr-9-thumb.dat b/test/arm_emulation/test-files/test-ldr-9-thumb.dat
new file mode 100644
index 0000000..0a6004c
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldr-9-thumb.dat
@@ -0,0 +1,130 @@
+# "ldr.w r3, [r11, #8]"
+thumb-apple-darwin
+0xf8db3008
+Memory-Begin
+0x2fdfff08 0x62343134
+Memory-End
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x62343134
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldrd-1-arm.dat b/test/arm_emulation/test-files/test-ldrd-1-arm.dat
new file mode 100644
index 0000000..dde125c
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldrd-1-arm.dat
@@ -0,0 +1,131 @@
+# "ldrd r0, r1, [r12, #+4]"
+arm-apple-darwin
+0xe1cc00d4
+Memory-Begin
+0x2fdfff14 0x30313038
+0x2fdfff18 0x31623039
+Memory-End
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x0000001f
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x30313038
+0x31623039
+0x2fdffe70
+0x0000001f
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldrd-1-thumb.dat b/test/arm_emulation/test-files/test-ldrd-1-thumb.dat
new file mode 100644
index 0000000..e801cd3
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldrd-1-thumb.dat
@@ -0,0 +1,131 @@
+# "ldrd r0, r1, [r12, #+4]"
+thumb-apple-darwin
+0xe9dc0101
+Memory-Begin
+0x2fdfff3c 0x0
+0x2fdfff40 0x0
+Memory-End
+17
+0x2fdffe78
+0x2fdffe88
+0x2fdffe98
+0x2fdffea8
+0x2fdffeb8
+0x2fdffec8
+0x2fdffed8
+0x2fdffe78
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdfff28
+0x2fdfff38
+0x2fdffe78
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000000
+0x2fdffe98
+0x2fdffea8
+0x2fdffeb8
+0x2fdffec8
+0x2fdffed8
+0x2fdffe78
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdfff28
+0x2fdfff38
+0x2fdffe78
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldrd-2-thumb.dat b/test/arm_emulation/test-files/test-ldrd-2-thumb.dat
new file mode 100644
index 0000000..a456a2a
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldrd-2-thumb.dat
@@ -0,0 +1,131 @@
+# "ldrd r4, r5, [pc, #-0]"
+thumb-apple-darwin
+0xe9df4500
+Memory-Begin
+0x2ffc 0xa0e1defe
+0x3000 0x2fe01000
+Memory-End
+17
+0x2fdffe78
+0x2fdffe88
+0x2fdffe98
+0x2fdffea8
+0x2fdffeb8
+0x2fdffec8
+0x2fdffed8
+0x2fdffe78
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdfff28
+0x2fdfff38
+0x2fdffe78
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe78
+0x2fdffe88
+0x2fdffe98
+0x2fdffea8
+0xa0e1defe
+0x2fe01000
+0x2fdffed8
+0x2fdffe78
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdfff28
+0x2fdfff38
+0x2fdffe78
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldrh-1-thumb.dat b/test/arm_emulation/test-files/test-ldrh-1-thumb.dat
new file mode 100644
index 0000000..3809a59
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldrh-1-thumb.dat
@@ -0,0 +1,130 @@
+# "ldrh r0, [r2, #16]"
+thumb-apple-darwin
+0x8a10
+Memory-Begin
+0x2fdffe78 0x0000762f
+Memory-End
+17
+0x2fdffe48
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x2fdffe88
+0x2fdffe98
+0x2fdffea8
+0x2fdffe48
+0x2fdffec8
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdffe48
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x0000762f
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x2fdffe88
+0x2fdffe98
+0x2fdffea8
+0x2fdffe48
+0x2fdffec8
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdffe48
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldrsh-1-arm.dat b/test/arm_emulation/test-files/test-ldrsh-1-arm.dat
new file mode 100644
index 0000000..d47856c
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldrsh-1-arm.dat
@@ -0,0 +1,130 @@
+# "ldrsh r0, [r2], #+15"
+arm-apple-darwin
+0xe0d200ff
+Memory-Begin
+0x2fdffe70 0xfffffeeb
+Memory-End
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x0000001f
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0xfffffeeb
+0x2fdffe60
+0x2fdffe7f
+0x0000001f
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-ldrsh-2-arm.dat b/test/arm_emulation/test-files/test-ldrsh-2-arm.dat
new file mode 100644
index 0000000..97ee17d
--- /dev/null
+++ b/test/arm_emulation/test-files/test-ldrsh-2-arm.dat
@@ -0,0 +1,130 @@
+# "ldrsh r14, [r2], #+15"
+arm-apple-darwin
+0xe0d2e0ff
+Memory-Begin
+0x2fdffe70 0xfffffeec
+Memory-End
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x0000001f
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe7f
+0x0000001f
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0xfffffeec
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-1-arm.dat b/test/arm_emulation/test-files/test-mov-1-arm.dat
new file mode 100644
index 0000000..436cd33
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-1-arm.dat
@@ -0,0 +1,129 @@
+# "mov r12, #256"
+arm-apple-darwin
+0xe3a0cc01
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x00000100
+0x2fdffe58
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-1-thumb.dat b/test/arm_emulation/test-files/test-mov-1-thumb.dat
new file mode 100644
index 0000000..e9a02df
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-1-thumb.dat
@@ -0,0 +1,129 @@
+# "mov ip, pc"
+thumb-apple-darwin
+0x46fc
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x00003000
+0x2fdffe58
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-10-thumb.dat b/test/arm_emulation/test-files/test-mov-10-thumb.dat
new file mode 100644
index 0000000..8c47eec
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-10-thumb.dat
@@ -0,0 +1,129 @@
+# "mov r0, r15"
+thumb-apple-darwin
+0x4678
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00003000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-11-thumb.dat b/test/arm_emulation/test-files/test-mov-11-thumb.dat
new file mode 100644
index 0000000..8cd88f5
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-11-thumb.dat
@@ -0,0 +1,129 @@
+# "mov r0, r7"
+thumb-apple-darwin
+0x4638
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe58
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-12-thumb.dat b/test/arm_emulation/test-files/test-mov-12-thumb.dat
new file mode 100644
index 0000000..cd9454c
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-12-thumb.dat
@@ -0,0 +1,129 @@
+# "mov.w r12, #256"
+thumb-apple-darwin
+0xf44f7c80
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x00000100
+0x2fdffe50
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-13-thumb.dat b/test/arm_emulation/test-files/test-mov-13-thumb.dat
new file mode 100644
index 0000000..a38e3df
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-13-thumb.dat
@@ -0,0 +1,129 @@
+# "mov r12, r13"
+thumb-apple-darwin
+0x46ec
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x2fdffe50
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-14-thumb.dat b/test/arm_emulation/test-files/test-mov-14-thumb.dat
new file mode 100644
index 0000000..326ff36
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-14-thumb.dat
@@ -0,0 +1,129 @@
+# "mov r14, r2"
+thumb-apple-darwin
+0x4696
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00000002
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-15-thumb.dat b/test/arm_emulation/test-files/test-mov-15-thumb.dat
new file mode 100644
index 0000000..4cebda9
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-15-thumb.dat
@@ -0,0 +1,129 @@
+# "mov r1, r14"
+thumb-apple-darwin
+0x4671
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00002f84
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-16-thumb.dat b/test/arm_emulation/test-files/test-mov-16-thumb.dat
new file mode 100644
index 0000000..31c0ac8
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-16-thumb.dat
@@ -0,0 +1,129 @@
+# "mov r2, ip"
+thumb-apple-darwin
+0x4662
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x0000000c
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-17-thumb.dat b/test/arm_emulation/test-files/test-mov-17-thumb.dat
new file mode 100644
index 0000000..3980821
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-17-thumb.dat
@@ -0,0 +1,129 @@
+# "mov r2, r13"
+thumb-apple-darwin
+0x466a
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x2fdffe50
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-18-thumb.dat b/test/arm_emulation/test-files/test-mov-18-thumb.dat
new file mode 100644
index 0000000..b050296
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-18-thumb.dat
@@ -0,0 +1,129 @@
+# "mov r2, r9"
+thumb-apple-darwin
+0x464a
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000009
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-19-thumb.dat b/test/arm_emulation/test-files/test-mov-19-thumb.dat
new file mode 100644
index 0000000..47e8a3f
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-19-thumb.dat
@@ -0,0 +1,129 @@
+# "mov r3, r12"
+thumb-apple-darwin
+0x4663
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000000c
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-2-arm.dat b/test/arm_emulation/test-files/test-mov-2-arm.dat
new file mode 100644
index 0000000..1f2eb7b
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-2-arm.dat
@@ -0,0 +1,129 @@
+# "mov r12, r13"
+arm-apple-darwin
+0xe1a0c00d
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x2fdffe58
+0x2fdffe58
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-2-thumb.dat b/test/arm_emulation/test-files/test-mov-2-thumb.dat
new file mode 100644
index 0000000..adf2e79
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-2-thumb.dat
@@ -0,0 +1,129 @@
+# "mov ip, r8"
+thumb-apple-darwin
+0x46c4
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x00000008
+0x2fdffe58
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-20-thumb.dat b/test/arm_emulation/test-files/test-mov-20-thumb.dat
new file mode 100644
index 0000000..b0c10d5
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-20-thumb.dat
@@ -0,0 +1,129 @@
+# "mov r3, r13"
+thumb-apple-darwin
+0x466b
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x2fdffe50
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-21-thumb.dat b/test/arm_emulation/test-files/test-mov-21-thumb.dat
new file mode 100644
index 0000000..df37165
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-21-thumb.dat
@@ -0,0 +1,129 @@
+# "mov r3, sp"
+thumb-apple-darwin
+0x466b
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x2fdffe58
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-22-thumb.dat b/test/arm_emulation/test-files/test-mov-22-thumb.dat
new file mode 100644
index 0000000..d193571
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-22-thumb.dat
@@ -0,0 +1,129 @@
+# "mov r4, r11"
+thumb-apple-darwin
+0x465c
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x0000000b
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-23-thumb.dat b/test/arm_emulation/test-files/test-mov-23-thumb.dat
new file mode 100644
index 0000000..2aca250
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-23-thumb.dat
@@ -0,0 +1,129 @@
+# "mov r5, r10"
+thumb-apple-darwin
+0x4655
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x0000000a
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-24-thumb.dat b/test/arm_emulation/test-files/test-mov-24-thumb.dat
new file mode 100644
index 0000000..17cb9f5
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-24-thumb.dat
@@ -0,0 +1,129 @@
+# "mov r6, r9"
+thumb-apple-darwin
+0x464e
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000009
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-25-thumb.dat b/test/arm_emulation/test-files/test-mov-25-thumb.dat
new file mode 100644
index 0000000..863bec2
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-25-thumb.dat
@@ -0,0 +1,129 @@
+# "mov r7, lr"
+thumb-apple-darwin
+0x4677
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00002f84
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-26-thumb.dat b/test/arm_emulation/test-files/test-mov-26-thumb.dat
new file mode 100644
index 0000000..7fefdf7
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-26-thumb.dat
@@ -0,0 +1,129 @@
+# "mov r7, r8"
+thumb-apple-darwin
+0x4647
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000008
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-27-thumb.dat b/test/arm_emulation/test-files/test-mov-27-thumb.dat
new file mode 100644
index 0000000..04b2ee1
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-27-thumb.dat
@@ -0,0 +1,129 @@
+# "mov r9, pc"
+thumb-apple-darwin
+0x46f9
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00003000
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-28-thumb.dat b/test/arm_emulation/test-files/test-mov-28-thumb.dat
new file mode 100644
index 0000000..219cdbf
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-28-thumb.dat
@@ -0,0 +1,129 @@
+# "mov sp, ip"
+thumb-apple-darwin
+0x46e5
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000c
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-29-thumb.dat b/test/arm_emulation/test-files/test-mov-29-thumb.dat
new file mode 100644
index 0000000..6f85ff9
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-29-thumb.dat
@@ -0,0 +1,129 @@
+# "mov sp, pc"
+thumb-apple-darwin
+0x46fd
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x00003000
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-3-arm.dat b/test/arm_emulation/test-files/test-mov-3-arm.dat
new file mode 100644
index 0000000..b6034cb
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-3-arm.dat
@@ -0,0 +1,129 @@
+# "mov r14, r2"
+arm-apple-darwin
+0xe1a0e002
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00000002
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-3-thumb.dat b/test/arm_emulation/test-files/test-mov-3-thumb.dat
new file mode 100644
index 0000000..60328ff
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-3-thumb.dat
@@ -0,0 +1,129 @@
+# "mov ip, sp"
+thumb-apple-darwin
+0x46ec
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x2fdffe58
+0x2fdffe58
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-30-thumb.dat b/test/arm_emulation/test-files/test-mov-30-thumb.dat
new file mode 100644
index 0000000..6384b5a
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-30-thumb.dat
@@ -0,0 +1,129 @@
+# "mov sp, r7"
+thumb-apple-darwin
+0x46bd
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-31-thumb.dat b/test/arm_emulation/test-files/test-mov-31-thumb.dat
new file mode 100644
index 0000000..d3051f8
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-31-thumb.dat
@@ -0,0 +1,129 @@
+# "movs r3, #1"
+thumb-apple-darwin
+0x2301
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000001
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffe
+0x20000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-4-arm.dat b/test/arm_emulation/test-files/test-mov-4-arm.dat
new file mode 100644
index 0000000..c1448a9
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-4-arm.dat
@@ -0,0 +1,129 @@
+# "mov r2, r9"
+arm-apple-darwin
+0xe1a02009
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000009
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-4-thumb.dat b/test/arm_emulation/test-files/test-mov-4-thumb.dat
new file mode 100644
index 0000000..28423e2
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-4-thumb.dat
@@ -0,0 +1,129 @@
+# "mov lr, pc"
+thumb-apple-darwin
+0x46fe
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00003000
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-5-arm.dat b/test/arm_emulation/test-files/test-mov-5-arm.dat
new file mode 100644
index 0000000..45a0071
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-5-arm.dat
@@ -0,0 +1,129 @@
+# "mov r3, #2147483648"
+arm-apple-darwin
+0xe3a03102
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe38
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe38
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x80000000
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe38
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe38
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-5-thumb.dat b/test/arm_emulation/test-files/test-mov-5-thumb.dat
new file mode 100644
index 0000000..ffd1d7e
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-5-thumb.dat
@@ -0,0 +1,129 @@
+# "mov lr, r2"
+thumb-apple-darwin
+0x4696
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00000002
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-6-arm.dat b/test/arm_emulation/test-files/test-mov-6-arm.dat
new file mode 100644
index 0000000..942282a
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-6-arm.dat
@@ -0,0 +1,129 @@
+# "mov r3, r13"
+arm-apple-darwin
+0xe1a0300d
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x2fdffe60
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-6-thumb.dat b/test/arm_emulation/test-files/test-mov-6-thumb.dat
new file mode 100644
index 0000000..ef64e9e
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-6-thumb.dat
@@ -0,0 +1,129 @@
+# "mov pc, ip"
+thumb-apple-darwin
+0x46e7
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x0000000c
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-7-thumb.dat b/test/arm_emulation/test-files/test-mov-7-thumb.dat
new file mode 100644
index 0000000..2094962
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-7-thumb.dat
@@ -0,0 +1,129 @@
+# "mov pc, lr"
+thumb-apple-darwin
+0x46f7
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002f84
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-8-thumb.dat b/test/arm_emulation/test-files/test-mov-8-thumb.dat
new file mode 100644
index 0000000..11e9c43
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-8-thumb.dat
@@ -0,0 +1,129 @@
+# "mov pc, r4"
+thumb-apple-darwin
+0x46a7
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00000004
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mov-9-thumb.dat b/test/arm_emulation/test-files/test-mov-9-thumb.dat
new file mode 100644
index 0000000..673e14b
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mov-9-thumb.dat
@@ -0,0 +1,129 @@
+# "mov pc, sp"
+thumb-apple-darwin
+0x46ef
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002f84
+0x2fdffe58
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-moveq-1-arm.dat b/test/arm_emulation/test-files/test-moveq-1-arm.dat
new file mode 100644
index 0000000..6923bd0
--- /dev/null
+++ b/test/arm_emulation/test-files/test-moveq-1-arm.dat
@@ -0,0 +1,129 @@
+# "moveq r3, #1"
+arm-apple-darwin
+0x3a03001
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000001
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-movs-1-arm.dat b/test/arm_emulation/test-files/test-movs-1-arm.dat
new file mode 100644
index 0000000..e6d9ec2
--- /dev/null
+++ b/test/arm_emulation/test-files/test-movs-1-arm.dat
@@ -0,0 +1,129 @@
+# "movs r12, r13"
+arm-apple-darwin
+0xe1b0c00d
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x2fdffe58
+0x2fdffe58
+0x00002e7c
+0x00002ffc
+0x20000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mvn-1-arm.dat b/test/arm_emulation/test-files/test-mvn-1-arm.dat
new file mode 100644
index 0000000..9d20e44
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mvn-1-arm.dat
@@ -0,0 +1,129 @@
+# "mvn r14, #1"
+arm-apple-darwin
+0xe3e0e001
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0xfffffffe
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mvn-1-thumb.dat b/test/arm_emulation/test-files/test-mvn-1-thumb.dat
new file mode 100644
index 0000000..d4de3ff
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mvn-1-thumb.dat
@@ -0,0 +1,129 @@
+# "mvn r0, #1"
+thumb-apple-darwin
+0xf06f0001
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe98
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe98
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0xfffffffe
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe98
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe98
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mvn-2-arm.dat b/test/arm_emulation/test-files/test-mvn-2-arm.dat
new file mode 100644
index 0000000..b1a749e
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mvn-2-arm.dat
@@ -0,0 +1,129 @@
+# "mvn r0, #1"
+arm-apple-darwin
+0xe3e00001
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe68
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe68
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0xfffffffe
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe68
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe68
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mvn-2-thumb.dat b/test/arm_emulation/test-files/test-mvn-2-thumb.dat
new file mode 100644
index 0000000..6d682a0
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mvn-2-thumb.dat
@@ -0,0 +1,129 @@
+# "mvn r0, #31"
+thumb-apple-darwin
+0xf06f001f
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe90
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe90
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0xffffffe0
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe90
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe90
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mvn-3-arm.dat b/test/arm_emulation/test-files/test-mvn-3-arm.dat
new file mode 100644
index 0000000..5b3ac71
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mvn-3-arm.dat
@@ -0,0 +1,129 @@
+# "mvn r0, #31"
+arm-apple-darwin
+0xe3e0001f
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0xffffffe0
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mvn-3-thumb.dat b/test/arm_emulation/test-files/test-mvn-3-thumb.dat
new file mode 100644
index 0000000..000f1f3
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mvn-3-thumb.dat
@@ -0,0 +1,129 @@
+# "mvn r14, #1"
+thumb-apple-darwin
+0xf06f0e01
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe90
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe90
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe90
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe90
+0xfffffffe
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mvn-4-arm.dat b/test/arm_emulation/test-files/test-mvn-4-arm.dat
new file mode 100644
index 0000000..3015161
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mvn-4-arm.dat
@@ -0,0 +1,129 @@
+# "mvn r3, r8"
+arm-apple-darwin
+0xe1e03008
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0xfffffff7
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-mvn-4-thumb.dat b/test/arm_emulation/test-files/test-mvn-4-thumb.dat
new file mode 100644
index 0000000..ee7fa30
--- /dev/null
+++ b/test/arm_emulation/test-files/test-mvn-4-thumb.dat
@@ -0,0 +1,129 @@
+# "mvns r3, r8"
+thumb-apple-darwin
+0xea7f0308
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe90
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe90
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0xfffffff7
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe90
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe90
+0x00002f80
+0x00002ffc
+0xa0000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-pop-1-arm.dat b/test/arm_emulation/test-files/test-pop-1-arm.dat
new file mode 100644
index 0000000..1b50b33
--- /dev/null
+++ b/test/arm_emulation/test-files/test-pop-1-arm.dat
@@ -0,0 +1,133 @@
+# "pop {r3, r4, r8, r10}"
+arm-apple-darwin
+0xe8bd0518
+Memory-Begin
+0x2fdffe50 0x0
+0x2fdffe54 0x2e7c
+0x2fdffe58 0x1
+0x2fdffe5c 0x2fdffeac
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000000
+0x00002e7c
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000001
+0x00000009
+0x2fdffeac
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-pop-1-thumb.dat b/test/arm_emulation/test-files/test-pop-1-thumb.dat
new file mode 100644
index 0000000..ff35156
--- /dev/null
+++ b/test/arm_emulation/test-files/test-pop-1-thumb.dat
@@ -0,0 +1,133 @@
+# "pop.w {r3, r4, r8, r10}"
+thumb-apple-darwin
+0xe8bd0518
+Memory-Begin
+0x2fdffe38 0x0
+0x2fdffe3c 0x2f80
+0x2fdffe40 0x1000
+0x2fdffe44 0x1
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe38
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe38
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000000
+0x00002f80
+0x00000005
+0x00000006
+0x2fdffe38
+0x00001000
+0x00000009
+0x00000001
+0x0000000b
+0x0000000c
+0x2fdffe48
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-pop-2-arm.dat b/test/arm_emulation/test-files/test-pop-2-arm.dat
new file mode 100644
index 0000000..5825610
--- /dev/null
+++ b/test/arm_emulation/test-files/test-pop-2-arm.dat
@@ -0,0 +1,130 @@
+# "pop {r9}"
+arm-apple-darwin
+0xe8bd0200
+Memory-Begin
+0x2fdffe70 0x0
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe70
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe70
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe70
+0x00000008
+0x00000000
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe74
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-pop-2-thumb.dat b/test/arm_emulation/test-files/test-pop-2-thumb.dat
new file mode 100644
index 0000000..d4d21bc
--- /dev/null
+++ b/test/arm_emulation/test-files/test-pop-2-thumb.dat
@@ -0,0 +1,130 @@
+# "pop {r3}"
+thumb-apple-darwin
+0xbc08
+Memory-Begin
+0x2fdffe60 0x0
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000000
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe64
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-pop-3-thumb.dat b/test/arm_emulation/test-files/test-pop-3-thumb.dat
new file mode 100644
index 0000000..648fbfe
--- /dev/null
+++ b/test/arm_emulation/test-files/test-pop-3-thumb.dat
@@ -0,0 +1,130 @@
+# "pop {r6}"
+thumb-apple-darwin
+0xbc40
+Memory-Begin
+0x2fdffe60 0x0
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000000
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe64
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-push-1-arm.dat b/test/arm_emulation/test-files/test-push-1-arm.dat
new file mode 100644
index 0000000..d23dc8b
--- /dev/null
+++ b/test/arm_emulation/test-files/test-push-1-arm.dat
@@ -0,0 +1,129 @@
+# "push {r0, r1, r2, r3, r7, r14}"
+arm-apple-darwin
+0xe92d408f
+Memory-Begin
+Memory-End
+17
+0x2fdffe30
+0x2fdffe40
+0x2fdffe50
+0x0000001f
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffe30
+0x2fdffeb0
+0x2fdffec0
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdffe30
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x2fdffe30
+0x2fdffe40
+0x2fdffe50
+0x0000001f
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffe30
+0x2fdffeb0
+0x2fdffec0
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdffe18
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-push-1-thumb.dat b/test/arm_emulation/test-files/test-push-1-thumb.dat
new file mode 100644
index 0000000..ca317b9
--- /dev/null
+++ b/test/arm_emulation/test-files/test-push-1-thumb.dat
@@ -0,0 +1,129 @@
+# "push {r0, r1, r2, r3, r7, r14}"
+thumb-apple-darwin
+0xb58f
+Memory-Begin
+Memory-End
+17
+0x2fdffe28
+0x2fdffe38
+0x2fdffe48
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x2fdffe88
+0x2fdffe28
+0x2fdffea8
+0x2fdffeb8
+0x2fdffec8
+0x2fdffed8
+0x2fdffee8
+0x2fdffe28
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe28
+0x2fdffe38
+0x2fdffe48
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x2fdffe88
+0x2fdffe28
+0x2fdffea8
+0x2fdffeb8
+0x2fdffec8
+0x2fdffed8
+0x2fdffee8
+0x2fdffe10
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-push-2-arm.dat b/test/arm_emulation/test-files/test-push-2-arm.dat
new file mode 100644
index 0000000..691ccca
--- /dev/null
+++ b/test/arm_emulation/test-files/test-push-2-arm.dat
@@ -0,0 +1,129 @@
+# "push {r6}"
+arm-apple-darwin
+0xe92d0040
+Memory-Begin
+Memory-End
+17
+0x2fdffe68
+0x2fdffe78
+0x2fdffe88
+0x0000001f
+0x2fdffea8
+0x2fdffeb8
+0x2fdffec8
+0x2fdffe68
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdfff28
+0x2fdffe68
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x2fdffe68
+0x2fdffe78
+0x2fdffe88
+0x0000001f
+0x2fdffea8
+0x2fdffeb8
+0x2fdffec8
+0x2fdffe68
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdfff28
+0x2fdffe64
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-push-2-thumb.dat b/test/arm_emulation/test-files/test-push-2-thumb.dat
new file mode 100644
index 0000000..7889758
--- /dev/null
+++ b/test/arm_emulation/test-files/test-push-2-thumb.dat
@@ -0,0 +1,129 @@
+# "push {r6}"
+thumb-apple-darwin
+0xb440
+Memory-Begin
+Memory-End
+17
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x2fdffe88
+0x2fdffe98
+0x2fdffea8
+0x2fdffeb8
+0x2fdffe58
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdffe58
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x2fdffe88
+0x2fdffe98
+0x2fdffea8
+0x2fdffeb8
+0x2fdffe58
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdffe54
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-push-3-arm.dat b/test/arm_emulation/test-files/test-push-3-arm.dat
new file mode 100644
index 0000000..c3b7056
--- /dev/null
+++ b/test/arm_emulation/test-files/test-push-3-arm.dat
@@ -0,0 +1,129 @@
+# "push {r7, r14}"
+arm-apple-darwin
+0xe92d4080
+Memory-Begin
+Memory-End
+17
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x0000001f
+0x2fdffe98
+0x2fdffea8
+0x2fdffeb8
+0x2fdffe58
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x0000001f
+0x2fdffe98
+0x2fdffea8
+0x2fdffeb8
+0x2fdffe58
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdffe50
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-push-3-thumb.dat b/test/arm_emulation/test-files/test-push-3-thumb.dat
new file mode 100644
index 0000000..4d8846b
--- /dev/null
+++ b/test/arm_emulation/test-files/test-push-3-thumb.dat
@@ -0,0 +1,129 @@
+# "push {r7, r14}"
+thumb-apple-darwin
+0xb580
+Memory-Begin
+Memory-End
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe48
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-str-1-arm.dat b/test/arm_emulation/test-files/test-str-1-arm.dat
new file mode 100644
index 0000000..e2adc03
--- /dev/null
+++ b/test/arm_emulation/test-files/test-str-1-arm.dat
@@ -0,0 +1,129 @@
+# "str r0, [r13]"
+arm-apple-darwin
+0xe58d0000
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-str-1-thumb.dat b/test/arm_emulation/test-files/test-str-1-thumb.dat
new file mode 100644
index 0000000..4b95df4
--- /dev/null
+++ b/test/arm_emulation/test-files/test-str-1-thumb.dat
@@ -0,0 +1,129 @@
+# "str r0, [r13]"
+thumb-apple-darwin
+0x9000
+Memory-Begin
+Memory-End
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-str-2-arm.dat b/test/arm_emulation/test-files/test-str-2-arm.dat
new file mode 100644
index 0000000..0a5d64a
--- /dev/null
+++ b/test/arm_emulation/test-files/test-str-2-arm.dat
@@ -0,0 +1,129 @@
+# "str r1, [r0, #+4]"
+arm-apple-darwin
+0xe5801004
+Memory-Begin
+Memory-End
+17
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x0000001f
+0x2fdffea0
+0x2fdffeb0
+0x2fdffec0
+0x2fdffe60
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdfff20
+0x2fdffe60
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x0000001f
+0x2fdffea0
+0x2fdffeb0
+0x2fdffec0
+0x2fdffe60
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdfff20
+0x2fdffe60
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-str-2-thumb.dat b/test/arm_emulation/test-files/test-str-2-thumb.dat
new file mode 100644
index 0000000..561b1ed
--- /dev/null
+++ b/test/arm_emulation/test-files/test-str-2-thumb.dat
@@ -0,0 +1,129 @@
+# "str r0, [sp, #0]"
+thumb-apple-darwin
+0x9000
+Memory-Begin
+Memory-End
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-str-3-arm.dat b/test/arm_emulation/test-files/test-str-3-arm.dat
new file mode 100644
index 0000000..226b443
--- /dev/null
+++ b/test/arm_emulation/test-files/test-str-3-arm.dat
@@ -0,0 +1,129 @@
+# "str r2, [r0]"
+arm-apple-darwin
+0xe5802000
+Memory-Begin
+Memory-End
+17
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x0000001f
+0x2fdffea0
+0x2fdffeb0
+0x2fdffec0
+0x2fdffe60
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdfff20
+0x2fdffe60
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x0000001f
+0x2fdffea0
+0x2fdffeb0
+0x2fdffec0
+0x2fdffe60
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdfff20
+0x2fdffe60
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-str-3-thumb.dat b/test/arm_emulation/test-files/test-str-3-thumb.dat
new file mode 100644
index 0000000..d41cc37
--- /dev/null
+++ b/test/arm_emulation/test-files/test-str-3-thumb.dat
@@ -0,0 +1,129 @@
+# "str r1, [sp, #32]"
+thumb-apple-darwin
+0x9108
+Memory-Begin
+Memory-End
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-str-4-arm.dat b/test/arm_emulation/test-files/test-str-4-arm.dat
new file mode 100644
index 0000000..ec4f593
--- /dev/null
+++ b/test/arm_emulation/test-files/test-str-4-arm.dat
@@ -0,0 +1,129 @@
+# "str r2, [r13, #+4]"
+arm-apple-darwin
+0xe58d2004
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-str-4-thumb.dat b/test/arm_emulation/test-files/test-str-4-thumb.dat
new file mode 100644
index 0000000..194bbe4
--- /dev/null
+++ b/test/arm_emulation/test-files/test-str-4-thumb.dat
@@ -0,0 +1,129 @@
+# "str.w r7, [r13, #-12]!"
+thumb-apple-darwin
+0xf84d7d0c
+Memory-Begin
+Memory-End
+17
+0x2fdffe48
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x2fdffe88
+0x2fdffe98
+0x2fdffea8
+0x2fdffe48
+0x2fdffec8
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdffe48
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe48
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x2fdffe88
+0x2fdffe98
+0x2fdffea8
+0x2fdffe48
+0x2fdffec8
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdffe3c
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-str-5-arm.dat b/test/arm_emulation/test-files/test-str-5-arm.dat
new file mode 100644
index 0000000..29a90b7
--- /dev/null
+++ b/test/arm_emulation/test-files/test-str-5-arm.dat
@@ -0,0 +1,129 @@
+# "str r7, [r13, #-12]!"
+arm-apple-darwin
+0xe52d700c
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe4c
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-strb-1-arm.dat b/test/arm_emulation/test-files/test-strb-1-arm.dat
new file mode 100644
index 0000000..38a0438
--- /dev/null
+++ b/test/arm_emulation/test-files/test-strb-1-arm.dat
@@ -0,0 +1,129 @@
+# "strb r0, [r2], #+15"
+arm-apple-darwin
+0xe4c2000f
+Memory-Begin
+Memory-End
+17
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x0000001f
+0x2fdffe98
+0x2fdffea8
+0x2fdffeb8
+0x2fdffe58
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x2fdffe58
+0x2fdffe68
+0x2fdffe87
+0x0000001f
+0x2fdffe98
+0x2fdffea8
+0x2fdffeb8
+0x2fdffe58
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdffe58
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-strb-2-arm.dat b/test/arm_emulation/test-files/test-strb-2-arm.dat
new file mode 100644
index 0000000..2f1730d
--- /dev/null
+++ b/test/arm_emulation/test-files/test-strb-2-arm.dat
@@ -0,0 +1,129 @@
+# "strb r3, [r0, #+8]"
+arm-apple-darwin
+0xe5c03008
+Memory-Begin
+Memory-End
+17
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x0000001f
+0x2fdffe98
+0x2fdffea8
+0x2fdffeb8
+0x2fdffe58
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x0000001f
+0x2fdffe98
+0x2fdffea8
+0x2fdffeb8
+0x2fdffe58
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdffe58
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-strbt-1-arm.dat b/test/arm_emulation/test-files/test-strbt-1-arm.dat
new file mode 100644
index 0000000..b4ac4ea
--- /dev/null
+++ b/test/arm_emulation/test-files/test-strbt-1-arm.dat
@@ -0,0 +1,129 @@
+# "strbt r14, [r2], #+15"
+arm-apple-darwin
+0xe4e2e00f
+Memory-Begin
+Memory-End
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe70
+0x0000001f
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x2fdffe50
+0x2fdffe60
+0x2fdffe7f
+0x0000001f
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffe50
+0x2fdffed0
+0x2fdffee0
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdffe50
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-strd-1-thumb.dat b/test/arm_emulation/test-files/test-strd-1-thumb.dat
new file mode 100644
index 0000000..c230761
--- /dev/null
+++ b/test/arm_emulation/test-files/test-strd-1-thumb.dat
@@ -0,0 +1,129 @@
+# "strd r10, r11, [r6, #+28]"
+thumb-apple-darwin
+0xe9c6ab07
+Memory-Begin
+Memory-End
+17
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffec0
+0x2fdffed0
+0x2fdffe70
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdfff20
+0x2fdfff30
+0x2fdffe70
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe70
+0x2fdffe80
+0x2fdffe90
+0x2fdffea0
+0x2fdffeb0
+0x2fdffec0
+0x2fdffed0
+0x2fdffe70
+0x2fdffef0
+0x2fdfff00
+0x2fdfff10
+0x2fdfff20
+0x2fdfff30
+0x2fdffe70
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-strt-1-arm.dat b/test/arm_emulation/test-files/test-strt-1-arm.dat
new file mode 100644
index 0000000..74f7c80
--- /dev/null
+++ b/test/arm_emulation/test-files/test-strt-1-arm.dat
@@ -0,0 +1,129 @@
+# "strt r0, [r2], #+15"
+arm-apple-darwin
+0xe4a2000f
+Memory-Begin
+Memory-End
+17
+0x2fdffe58
+0x2fdffe68
+0x2fdffe78
+0x0000001f
+0x2fdffe98
+0x2fdffea8
+0x2fdffeb8
+0x2fdffe58
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x2fdffe58
+0x2fdffe68
+0x2fdffe87
+0x0000001f
+0x2fdffe98
+0x2fdffea8
+0x2fdffeb8
+0x2fdffe58
+0x2fdffed8
+0x2fdffee8
+0x2fdffef8
+0x2fdfff08
+0x2fdfff18
+0x2fdffe58
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-sub-1-arm.dat b/test/arm_emulation/test-files/test-sub-1-arm.dat
new file mode 100644
index 0000000..5811747
--- /dev/null
+++ b/test/arm_emulation/test-files/test-sub-1-arm.dat
@@ -0,0 +1,129 @@
+# "sub r0, sp, r8"
+arm-apple-darwin
+0xe04d0008
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x2fdffe50
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-sub-1-thumb.dat b/test/arm_emulation/test-files/test-sub-1-thumb.dat
new file mode 100644
index 0000000..f87ae56
--- /dev/null
+++ b/test/arm_emulation/test-files/test-sub-1-thumb.dat
@@ -0,0 +1,129 @@
+# "sub.w r10, sp, #16"
+thumb-apple-darwin
+0xf1ad0a10
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe40
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe40
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe40
+0x00000008
+0x00000009
+0x2fdffe30
+0x0000000b
+0x0000000c
+0x2fdffe40
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-sub-10-arm.dat b/test/arm_emulation/test-files/test-sub-10-arm.dat
new file mode 100644
index 0000000..7c3b923
--- /dev/null
+++ b/test/arm_emulation/test-files/test-sub-10-arm.dat
@@ -0,0 +1,129 @@
+# "sub r7, r12, #8"
+arm-apple-darwin
+0xe24c7008
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x00000004
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-sub-2-arm.dat b/test/arm_emulation/test-files/test-sub-2-arm.dat
new file mode 100644
index 0000000..3dde176
--- /dev/null
+++ b/test/arm_emulation/test-files/test-sub-2-arm.dat
@@ -0,0 +1,129 @@
+# "sub r10, r12, #31"
+arm-apple-darwin
+0xe24ca01f
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0xffffffed
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-sub-2-thumb.dat b/test/arm_emulation/test-files/test-sub-2-thumb.dat
new file mode 100644
index 0000000..dca2954
--- /dev/null
+++ b/test/arm_emulation/test-files/test-sub-2-thumb.dat
@@ -0,0 +1,129 @@
+# "sub.w r10, sp, #31"
+thumb-apple-darwin
+0xf1ad0a1f
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe40
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe40
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe40
+0x00000008
+0x00000009
+0x2fdffe21
+0x0000000b
+0x0000000c
+0x2fdffe40
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-sub-3-arm.dat b/test/arm_emulation/test-files/test-sub-3-arm.dat
new file mode 100644
index 0000000..0447b7d
--- /dev/null
+++ b/test/arm_emulation/test-files/test-sub-3-arm.dat
@@ -0,0 +1,129 @@
+# "sub r12, r13, #12"
+arm-apple-darwin
+0xe24dc00c
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x2fdffe44
+0x2fdffe50
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-sub-3-thumb.dat b/test/arm_emulation/test-files/test-sub-3-thumb.dat
new file mode 100644
index 0000000..0c801e6
--- /dev/null
+++ b/test/arm_emulation/test-files/test-sub-3-thumb.dat
@@ -0,0 +1,129 @@
+# "sub.w r12, sp, #31"
+thumb-apple-darwin
+0xf1ad0c1f
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe40
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe40
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe40
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x2fdffe21
+0x2fdffe40
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-sub-4-arm.dat b/test/arm_emulation/test-files/test-sub-4-arm.dat
new file mode 100644
index 0000000..c9147ae
--- /dev/null
+++ b/test/arm_emulation/test-files/test-sub-4-arm.dat
@@ -0,0 +1,129 @@
+# "sub r13, r13, #24"
+arm-apple-darwin
+0xe24dd018
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe38
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-sub-4-thumb.dat b/test/arm_emulation/test-files/test-sub-4-thumb.dat
new file mode 100644
index 0000000..3e49c88
--- /dev/null
+++ b/test/arm_emulation/test-files/test-sub-4-thumb.dat
@@ -0,0 +1,129 @@
+# "sub.w r1, sp, r3, lsl #2"
+thumb-apple-darwin
+0xebad0183
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe30
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe30
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x2fdffe24
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe30
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe30
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-sub-5-arm.dat b/test/arm_emulation/test-files/test-sub-5-arm.dat
new file mode 100644
index 0000000..d093f90
--- /dev/null
+++ b/test/arm_emulation/test-files/test-sub-5-arm.dat
@@ -0,0 +1,129 @@
+# "sub r13, r13, #4"
+arm-apple-darwin
+0xe24dd004
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe54
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-sub-5-thumb.dat b/test/arm_emulation/test-files/test-sub-5-thumb.dat
new file mode 100644
index 0000000..9b3dc59
--- /dev/null
+++ b/test/arm_emulation/test-files/test-sub-5-thumb.dat
@@ -0,0 +1,129 @@
+# "sub.w r7, sp, #1"
+thumb-apple-darwin
+0xf1ad0701
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe4f
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-sub-6-arm.dat b/test/arm_emulation/test-files/test-sub-6-arm.dat
new file mode 100644
index 0000000..c02ebc4
--- /dev/null
+++ b/test/arm_emulation/test-files/test-sub-6-arm.dat
@@ -0,0 +1,129 @@
+# "sub r1, r13, #4"
+arm-apple-darwin
+0xe24d1004
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x2fdffe54
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-sub-6-thumb.dat b/test/arm_emulation/test-files/test-sub-6-thumb.dat
new file mode 100644
index 0000000..09024ef
--- /dev/null
+++ b/test/arm_emulation/test-files/test-sub-6-thumb.dat
@@ -0,0 +1,129 @@
+# "sub.w sp, sp, #4"
+thumb-apple-darwin
+0xf1ad0d04
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe4c
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-sub-8-arm.dat b/test/arm_emulation/test-files/test-sub-8-arm.dat
new file mode 100644
index 0000000..49e1dde
--- /dev/null
+++ b/test/arm_emulation/test-files/test-sub-8-arm.dat
@@ -0,0 +1,129 @@
+# "sub r2, r2, r3"
+arm-apple-darwin
+0xe0422003
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0xffffffe3
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-sub-9-arm.dat b/test/arm_emulation/test-files/test-sub-9-arm.dat
new file mode 100644
index 0000000..86f594f
--- /dev/null
+++ b/test/arm_emulation/test-files/test-sub-9-arm.dat
@@ -0,0 +1,129 @@
+# "sub r4, r12, r7"
+arm-apple-darwin
+0xe04c4007
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0xd02001b4
+0x00000005
+0x00000006
+0x2fdffe58
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe58
+0x00002e7c
+0x00002ffc
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-subs-1-arm.dat b/test/arm_emulation/test-files/test-subs-1-arm.dat
new file mode 100644
index 0000000..71f8d43
--- /dev/null
+++ b/test/arm_emulation/test-files/test-subs-1-arm.dat
@@ -0,0 +1,129 @@
+# "subs r10, r13, #31"
+arm-apple-darwin
+0xe25da01f
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002e7c
+0x00002ff8
+0x60000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x0000001f
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x2fdffe31
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002e7c
+0x00002ffc
+0x20000010
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x00000007
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x0000000d
+0x0000000e
+0x0000000f
+0x00000010
+0x00000011
+0x00000012
+0x00000013
+0x00000014
+0x00000015
+0x00000016
+0x00000017
+0x00000018
+0x00000019
+0x0000001a
+0x0000001b
+0x0000001c
+0x0000001d
+0x0000001e
+0x0000001f
+0x03000000
diff --git a/test/arm_emulation/test-files/test-subs-1-thumb.dat b/test/arm_emulation/test-files/test-subs-1-thumb.dat
new file mode 100644
index 0000000..db1a280
--- /dev/null
+++ b/test/arm_emulation/test-files/test-subs-1-thumb.dat
@@ -0,0 +1,129 @@
+# "subs r0, r6, #0"
+thumb-apple-darwin
+0x1e30
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000006
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x20000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-subs-10-thumb.dat b/test/arm_emulation/test-files/test-subs-10-thumb.dat
new file mode 100644
index 0000000..0d40a8f
--- /dev/null
+++ b/test/arm_emulation/test-files/test-subs-10-thumb.dat
@@ -0,0 +1,129 @@
+# "subs.w r1, sp, #4"
+thumb-apple-darwin
+0xf1bd0104
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe48
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe48
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x2fdffe44
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe48
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe48
+0x00002f80
+0x00002ffc
+0x20000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-subs-2-thumb.dat b/test/arm_emulation/test-files/test-subs-2-thumb.dat
new file mode 100644
index 0000000..240bb46
--- /dev/null
+++ b/test/arm_emulation/test-files/test-subs-2-thumb.dat
@@ -0,0 +1,129 @@
+# "subs r0, r7, r5"
+thumb-apple-darwin
+0x1b78
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe48
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe48
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x2fdffe43
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe48
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe48
+0x00002f84
+0x00002ffe
+0x20000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-subs-3-thumb.dat b/test/arm_emulation/test-files/test-subs-3-thumb.dat
new file mode 100644
index 0000000..89f6b31
--- /dev/null
+++ b/test/arm_emulation/test-files/test-subs-3-thumb.dat
@@ -0,0 +1,129 @@
+# "subs.w r10, r13, #31"
+thumb-apple-darwin
+0xf1bd0a1f
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe38
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe38
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe38
+0x00000008
+0x00000009
+0x2fdffe19
+0x0000000b
+0x0000000c
+0x2fdffe38
+0x00002f80
+0x00002ffc
+0x20000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-subs-4-thumb.dat b/test/arm_emulation/test-files/test-subs-4-thumb.dat
new file mode 100644
index 0000000..866926e
--- /dev/null
+++ b/test/arm_emulation/test-files/test-subs-4-thumb.dat
@@ -0,0 +1,129 @@
+# "subs r1, r3, #4"
+thumb-apple-darwin
+0x1f19
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0xffffffff
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x80000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-subs-5-thumb.dat b/test/arm_emulation/test-files/test-subs-5-thumb.dat
new file mode 100644
index 0000000..f078177
--- /dev/null
+++ b/test/arm_emulation/test-files/test-subs-5-thumb.dat
@@ -0,0 +1,129 @@
+# "subs r4, r2, r6"
+thumb-apple-darwin
+0x1b94
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe48
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe48
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0xfffffffc
+0x00000005
+0x00000006
+0x2fdffe48
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe48
+0x00002f84
+0x00002ffe
+0x80000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-subs-6-thumb.dat b/test/arm_emulation/test-files/test-subs-6-thumb.dat
new file mode 100644
index 0000000..2a54ad5
--- /dev/null
+++ b/test/arm_emulation/test-files/test-subs-6-thumb.dat
@@ -0,0 +1,129 @@
+# "subs r7, r5, #7"
+thumb-apple-darwin
+0x1fef
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe50
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0xfffffffe
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f84
+0x00002ffe
+0x80000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-subs-8-thumb.dat b/test/arm_emulation/test-files/test-subs-8-thumb.dat
new file mode 100644
index 0000000..89f6b31
--- /dev/null
+++ b/test/arm_emulation/test-files/test-subs-8-thumb.dat
@@ -0,0 +1,129 @@
+# "subs.w r10, r13, #31"
+thumb-apple-darwin
+0xf1bd0a1f
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe38
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe38
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe38
+0x00000008
+0x00000009
+0x2fdffe19
+0x0000000b
+0x0000000c
+0x2fdffe38
+0x00002f80
+0x00002ffc
+0x20000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-subs-9-thumb.dat b/test/arm_emulation/test-files/test-subs-9-thumb.dat
new file mode 100644
index 0000000..78500ed
--- /dev/null
+++ b/test/arm_emulation/test-files/test-subs-9-thumb.dat
@@ -0,0 +1,129 @@
+# "subs.w r10, sp, #31"
+thumb-apple-darwin
+0xf1bd0a1f
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe38
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe38
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe38
+0x00000008
+0x00000009
+0x2fdffe19
+0x0000000b
+0x0000000c
+0x2fdffe38
+0x00002f80
+0x00002ffc
+0x20000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-vpop-1-thumb.dat b/test/arm_emulation/test-files/test-vpop-1-thumb.dat
new file mode 100644
index 0000000..74a0b31
--- /dev/null
+++ b/test/arm_emulation/test-files/test-vpop-1-thumb.dat
@@ -0,0 +1,137 @@
+# "vpop {d11, d12, d13, d14}"
+thumb-apple-darwin
+0xecbdbb08
+Memory-Begin
+0x2fdffe60 0x00000000
+0x2fdffe64 0x00002f80
+0x2fdffe68 0x00001000
+0x2fdffe6c 0x00000001
+0x2fdffe70 0x2fdffebc
+0x2fdffe74 0x00000000
+0x2fdffe78 0x00000000
+0x2fdffe7c 0x2fdffe8c
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe80
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00002f80
+0x00001000
+0x00000001
+0x2fdffebc
+0x00000000
+0x00000000
+0x2fdffe8c
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-vpop-2-thumb.dat b/test/arm_emulation/test-files/test-vpop-2-thumb.dat
new file mode 100644
index 0000000..66f5d66
--- /dev/null
+++ b/test/arm_emulation/test-files/test-vpop-2-thumb.dat
@@ -0,0 +1,130 @@
+# "vpop {s0}"
+thumb-apple-darwin
+0xecbd0a01
+Memory-Begin
+0x2fdffe98 0x0
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe98
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe98
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe98
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe9c
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-vpop-3-thumb.dat b/test/arm_emulation/test-files/test-vpop-3-thumb.dat
new file mode 100644
index 0000000..527e967
--- /dev/null
+++ b/test/arm_emulation/test-files/test-vpop-3-thumb.dat
@@ -0,0 +1,133 @@
+# "vpop {s11, s12, s13, s14}"
+thumb-apple-darwin
+0xecfd5a04
+Memory-Begin
+0x2fdffe60 0x0
+0x2fdffe64 0x2f80
+0x2fdffe68 0x1000
+0x2fdffe6c 0x1
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe70
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00002f80
+0x00001000
+0x00000001
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-vpush-1-thumb.dat b/test/arm_emulation/test-files/test-vpush-1-thumb.dat
new file mode 100644
index 0000000..1bd8207
--- /dev/null
+++ b/test/arm_emulation/test-files/test-vpush-1-thumb.dat
@@ -0,0 +1,129 @@
+# "vpush {d11, d12, d13, d14}"
+thumb-apple-darwin
+0xed2dbb08
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe40
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-vpush-2-thumb.dat b/test/arm_emulation/test-files/test-vpush-2-thumb.dat
new file mode 100644
index 0000000..95fb9ba
--- /dev/null
+++ b/test/arm_emulation/test-files/test-vpush-2-thumb.dat
@@ -0,0 +1,129 @@
+# "vpush {s0}"
+thumb-apple-darwin
+0xed2d0a01
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe90
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe90
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe90
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe8c
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
diff --git a/test/arm_emulation/test-files/test-vpush-3-thumb.dat b/test/arm_emulation/test-files/test-vpush-3-thumb.dat
new file mode 100644
index 0000000..c1c66a2
--- /dev/null
+++ b/test/arm_emulation/test-files/test-vpush-3-thumb.dat
@@ -0,0 +1,129 @@
+# "vpush {s11, s12, s13, s14}"
+thumb-apple-darwin
+0xed6d5a04
+Memory-Begin
+Memory-End
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe60
+0x00002f80
+0x00002ff8
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000
+17
+0x00000000
+0x00000001
+0x00000002
+0x00000003
+0x00000004
+0x00000005
+0x00000006
+0x2fdffe60
+0x00000008
+0x00000009
+0x0000000a
+0x0000000b
+0x0000000c
+0x2fdffe50
+0x00002f80
+0x00002ffc
+0x60000030
+9
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x000000000000000000000000
+0x00000000
+33
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x00000000
+0x03000000